diff --git a/docs/dyn/admin_directory_v1.asps.html b/docs/dyn/admin_directory_v1.asps.html index ebf5f9fb8cb..d550b010139 100644 --- a/docs/dyn/admin_directory_v1.asps.html +++ b/docs/dyn/admin_directory_v1.asps.html @@ -79,13 +79,13 @@

Instance Methods

Close httplib2 connections.

delete(userKey, codeId, x__xgafv=None)

-

Delete an ASP issued by a user.

+

Deletes an ASP issued by a user.

get(userKey, codeId, x__xgafv=None)

-

Get information about an ASP issued by a user.

+

Gets information about an ASP issued by a user.

list(userKey, x__xgafv=None)

-

List the ASPs issued by a user.

+

Lists the ASPs issued by a user.

Method Details

close() @@ -94,7 +94,7 @@

Method Details

delete(userKey, codeId, x__xgafv=None) -
Delete an ASP issued by a user.
+  
Deletes an ASP issued by a user.
 
 Args:
   userKey: string, Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
@@ -108,7 +108,7 @@ 

Method Details

get(userKey, codeId, x__xgafv=None) -
Get information about an ASP issued by a user.
+  
Gets information about an ASP issued by a user.
 
 Args:
   userKey: string, Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
@@ -134,7 +134,7 @@ 

Method Details

list(userKey, x__xgafv=None) -
List the ASPs issued by a user.
+  
Lists the ASPs issued by a user.
 
 Args:
   userKey: string, Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
diff --git a/docs/dyn/admin_directory_v1.channels.html b/docs/dyn/admin_directory_v1.channels.html
index e7d3db32dc6..09c2fdee01b 100644
--- a/docs/dyn/admin_directory_v1.channels.html
+++ b/docs/dyn/admin_directory_v1.channels.html
@@ -79,7 +79,7 @@ 

Instance Methods

Close httplib2 connections.

stop(body=None, x__xgafv=None)

-

Stop watching resources through this channel.

+

Stops watching resources through this channel.

Method Details

close() @@ -88,7 +88,7 @@

Method Details

stop(body=None, x__xgafv=None) -
Stop watching resources through this channel.
+  
Stops watching resources through this channel.
 
 Args:
   body: object, The request body.
diff --git a/docs/dyn/admin_directory_v1.chromeosdevices.html b/docs/dyn/admin_directory_v1.chromeosdevices.html
index dfe6ef7ba48..f7a6fcea8a2 100644
--- a/docs/dyn/admin_directory_v1.chromeosdevices.html
+++ b/docs/dyn/admin_directory_v1.chromeosdevices.html
@@ -91,7 +91,7 @@ 

Instance Methods

Retrieves the next page of results.

moveDevicesToOu(customerId, orgUnitPath, body=None, x__xgafv=None)

-

Move or insert multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.

+

Moves or inserts multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.

patch(customerId, deviceId, body=None, projection=None, x__xgafv=None)

Updates a device's updatable properties, such as `annotatedUser`, `annotatedLocation`, `notes`, `orgUnitPath`, or `annotatedAssetId`. This method supports [patch semantics](/admin-sdk/directory/v1/guides/performance#patch).

@@ -417,7 +417,7 @@

Method Details

moveDevicesToOu(customerId, orgUnitPath, body=None, x__xgafv=None) -
Move or insert multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.
+  
Moves or inserts multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account (required)
diff --git a/docs/dyn/admin_directory_v1.customers.html b/docs/dyn/admin_directory_v1.customers.html
index 186f08a75d4..0acd76584b6 100644
--- a/docs/dyn/admin_directory_v1.customers.html
+++ b/docs/dyn/admin_directory_v1.customers.html
@@ -87,7 +87,7 @@ 

Instance Methods

Retrieves a customer.

patch(customerKey, body=None, x__xgafv=None)

-

Patch Customers via Apiary Patch Orchestration

+

Patches a customer.

update(customerKey, body=None, x__xgafv=None)

Updates a customer.

@@ -136,7 +136,7 @@

Method Details

patch(customerKey, body=None, x__xgafv=None) -
Patch Customers via Apiary Patch Orchestration
+  
Patches a customer.
 
 Args:
   customerKey: string, Id of the customer to be updated (required)
diff --git a/docs/dyn/admin_directory_v1.groups.html b/docs/dyn/admin_directory_v1.groups.html
index c13d4ea9ac8..bd2d85558d1 100644
--- a/docs/dyn/admin_directory_v1.groups.html
+++ b/docs/dyn/admin_directory_v1.groups.html
@@ -93,7 +93,7 @@ 

Instance Methods

Creates a group.

list(customer=None, domain=None, maxResults=None, orderBy=None, pageToken=None, query=None, sortOrder=None, userKey=None, x__xgafv=None)

-

Retrieve all groups of a domain or of a user given a userKey (paginated)

+

Retrieves all groups of a domain or of a user given a userKey (paginated).

list_next(previous_request, previous_response)

Retrieves the next page of results.

@@ -207,7 +207,7 @@

Method Details

list(customer=None, domain=None, maxResults=None, orderBy=None, pageToken=None, query=None, sortOrder=None, userKey=None, x__xgafv=None) -
Retrieve all groups of a domain or of a user given a userKey (paginated)
+  
Retrieves all groups of a domain or of a user given a userKey (paginated).
 
 Args:
   customer: string, The unique ID for the customer's Google Workspace account. In case of a multi-domain account, to fetch all groups for a customer, fill this field instead of domain. As an account administrator, you can also use the `my_customer` alias to represent your account's `customerId`. The `customerId` is also returned as part of the [Users](/admin-sdk/directory/v1/reference/users)
diff --git a/docs/dyn/admin_directory_v1.resources.buildings.html b/docs/dyn/admin_directory_v1.resources.buildings.html
index c0125ebc6f8..e2a8132e03b 100644
--- a/docs/dyn/admin_directory_v1.resources.buildings.html
+++ b/docs/dyn/admin_directory_v1.resources.buildings.html
@@ -94,7 +94,7 @@ 

Instance Methods

Retrieves the next page of results.

patch(customer, buildingId, body=None, coordinatesSource=None, x__xgafv=None)

-

Patches a building via Apiary Patch Orchestration.

+

Patches a building.

update(customer, buildingId, body=None, coordinatesSource=None, x__xgafv=None)

Updates a building.

@@ -301,7 +301,7 @@

Method Details

patch(customer, buildingId, body=None, coordinatesSource=None, x__xgafv=None) -
Patches a building via Apiary Patch Orchestration.
+  
Patches a building.
 
 Args:
   customer: string, The unique ID for the customer's Google Workspace account. As an account administrator, you can also use the `my_customer` alias to represent your account's customer ID. (required)
diff --git a/docs/dyn/admin_directory_v1.resources.calendars.html b/docs/dyn/admin_directory_v1.resources.calendars.html
index 23790b7d0ca..1984e484880 100644
--- a/docs/dyn/admin_directory_v1.resources.calendars.html
+++ b/docs/dyn/admin_directory_v1.resources.calendars.html
@@ -94,7 +94,7 @@ 

Instance Methods

Retrieves the next page of results.

patch(customer, calendarResourceId, body=None, x__xgafv=None)

-

Patches a calendar resource via Apiary Patch Orchestration.

+

Patches a calendar resource.

update(customer, calendarResourceId, body=None, x__xgafv=None)

Updates a calendar resource. This method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved.

@@ -266,7 +266,7 @@

Method Details

patch(customer, calendarResourceId, body=None, x__xgafv=None) -
Patches a calendar resource via Apiary Patch Orchestration.
+  
Patches a calendar resource.
 
 Args:
   customer: string, The unique ID for the customer's Google Workspace account. As an account administrator, you can also use the `my_customer` alias to represent your account's customer ID. (required)
diff --git a/docs/dyn/admin_directory_v1.resources.features.html b/docs/dyn/admin_directory_v1.resources.features.html
index 30178cf8fae..c361db118a6 100644
--- a/docs/dyn/admin_directory_v1.resources.features.html
+++ b/docs/dyn/admin_directory_v1.resources.features.html
@@ -94,7 +94,7 @@ 

Instance Methods

Retrieves the next page of results.

patch(customer, featureKey, body=None, x__xgafv=None)

-

Patches a feature via Apiary Patch Orchestration.

+

Patches a feature.

rename(customer, oldName, body=None, x__xgafv=None)

Renames a feature.

@@ -219,7 +219,7 @@

Method Details

patch(customer, featureKey, body=None, x__xgafv=None) -
Patches a feature via Apiary Patch Orchestration.
+  
Patches a feature.
 
 Args:
   customer: string, The unique ID for the customer's Google Workspace account. As an account administrator, you can also use the `my_customer` alias to represent your account's customer ID. (required)
diff --git a/docs/dyn/admin_directory_v1.roleAssignments.html b/docs/dyn/admin_directory_v1.roleAssignments.html
index 07fbdcbc095..afe5657fbbd 100644
--- a/docs/dyn/admin_directory_v1.roleAssignments.html
+++ b/docs/dyn/admin_directory_v1.roleAssignments.html
@@ -82,7 +82,7 @@ 

Instance Methods

Deletes a role assignment.

get(customer, roleAssignmentId, x__xgafv=None)

-

Retrieve a role assignment.

+

Retrieves a role assignment.

insert(customer, body=None, x__xgafv=None)

Creates a role assignment.

@@ -114,7 +114,7 @@

Method Details

get(customer, roleAssignmentId, x__xgafv=None) -
Retrieve a role assignment.
+  
Retrieves a role assignment.
 
 Args:
   customer: string, Immutable ID of the Google Workspace account. (required)
diff --git a/docs/dyn/admin_directory_v1.roles.html b/docs/dyn/admin_directory_v1.roles.html
index 91ba4c997fa..0cc6a5726ea 100644
--- a/docs/dyn/admin_directory_v1.roles.html
+++ b/docs/dyn/admin_directory_v1.roles.html
@@ -94,7 +94,7 @@ 

Instance Methods

Retrieves the next page of results.

patch(customer, roleId, body=None, x__xgafv=None)

-

Patch role via Apiary Patch Orchestration

+

Patches a role.

update(customer, roleId, body=None, x__xgafv=None)

Updates a role.

@@ -256,7 +256,7 @@

Method Details

patch(customer, roleId, body=None, x__xgafv=None) -
Patch role via Apiary Patch Orchestration
+  
Patches a role.
 
 Args:
   customer: string, Immutable ID of the Google Workspace account. (required)
diff --git a/docs/dyn/admin_directory_v1.schemas.html b/docs/dyn/admin_directory_v1.schemas.html
index 9abf0780096..b4f84259ffb 100644
--- a/docs/dyn/admin_directory_v1.schemas.html
+++ b/docs/dyn/admin_directory_v1.schemas.html
@@ -79,22 +79,22 @@ 

Instance Methods

Close httplib2 connections.

delete(customerId, schemaKey, x__xgafv=None)

-

Delete schema

+

Deletes a schema.

get(customerId, schemaKey, x__xgafv=None)

-

Retrieve schema

+

Retrieves a schema.

insert(customerId, body=None, x__xgafv=None)

-

Create schema.

+

Creates a schema.

list(customerId, x__xgafv=None)

-

Retrieve all schemas for a customer

+

Retrieves all schemas for a customer.

patch(customerId, schemaKey, body=None, x__xgafv=None)

-

Patch Schema via Apiary Patch Orchestration

+

Patches a schema.

update(customerId, schemaKey, body=None, x__xgafv=None)

-

Update schema

+

Updates a schema.

Method Details

close() @@ -103,7 +103,7 @@

Method Details

delete(customerId, schemaKey, x__xgafv=None) -
Delete schema
+  
Deletes a schema.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account. (required)
@@ -117,7 +117,7 @@ 

Method Details

get(customerId, schemaKey, x__xgafv=None) -
Retrieve schema
+  
Retrieves a schema.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account. (required)
@@ -158,7 +158,7 @@ 

Method Details

insert(customerId, body=None, x__xgafv=None) -
Create schema.
+  
Creates a schema.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account. (required)
@@ -226,7 +226,7 @@ 

Method Details

list(customerId, x__xgafv=None) -
Retrieve all schemas for a customer
+  
Retrieves all schemas for a customer.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account. (required)
@@ -272,7 +272,7 @@ 

Method Details

patch(customerId, schemaKey, body=None, x__xgafv=None) -
Patch Schema via Apiary Patch Orchestration
+  
Patches a schema.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account. (required)
@@ -341,7 +341,7 @@ 

Method Details

update(customerId, schemaKey, body=None, x__xgafv=None) -
Update schema
+  
Updates a schema.
 
 Args:
   customerId: string, Immutable ID of the Google Workspace account. (required)
diff --git a/docs/dyn/admin_directory_v1.tokens.html b/docs/dyn/admin_directory_v1.tokens.html
index f54c70d9307..ffdae350a31 100644
--- a/docs/dyn/admin_directory_v1.tokens.html
+++ b/docs/dyn/admin_directory_v1.tokens.html
@@ -79,10 +79,10 @@ 

Instance Methods

Close httplib2 connections.

delete(userKey, clientId, x__xgafv=None)

-

Delete all access tokens issued by a user for an application.

+

Deletes all access tokens issued by a user for an application.

get(userKey, clientId, x__xgafv=None)

-

Get information about an access token issued by a user.

+

Gets information about an access token issued by a user.

list(userKey, x__xgafv=None)

Returns the set of tokens specified user has issued to 3rd party applications.

@@ -94,7 +94,7 @@

Method Details

delete(userKey, clientId, x__xgafv=None) -
Delete all access tokens issued by a user for an application.
+  
Deletes all access tokens issued by a user for an application.
 
 Args:
   userKey: string, Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
@@ -108,7 +108,7 @@ 

Method Details

get(userKey, clientId, x__xgafv=None) -
Get information about an access token issued by a user.
+  
Gets information about an access token issued by a user.
 
 Args:
   userKey: string, Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
diff --git a/docs/dyn/admin_directory_v1.twoStepVerification.html b/docs/dyn/admin_directory_v1.twoStepVerification.html
index a52e093c6c9..f5c168fd846 100644
--- a/docs/dyn/admin_directory_v1.twoStepVerification.html
+++ b/docs/dyn/admin_directory_v1.twoStepVerification.html
@@ -79,7 +79,7 @@ 

Instance Methods

Close httplib2 connections.

turnOff(userKey, x__xgafv=None)

-

Turn off 2-Step Verification for user.

+

Turns off 2-Step Verification for user.

Method Details

close() @@ -88,7 +88,7 @@

Method Details

turnOff(userKey, x__xgafv=None) -
Turn off 2-Step Verification for user.
+  
Turns off 2-Step Verification for user.
 
 Args:
   userKey: string, Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
diff --git a/docs/dyn/admin_directory_v1.users.aliases.html b/docs/dyn/admin_directory_v1.users.aliases.html
index 6bc50e78d7f..619d5641bf1 100644
--- a/docs/dyn/admin_directory_v1.users.aliases.html
+++ b/docs/dyn/admin_directory_v1.users.aliases.html
@@ -88,7 +88,7 @@ 

Instance Methods

Lists all aliases for a user.

watch(userKey, body=None, event=None, x__xgafv=None)

-

Watch for changes in users list.

+

Watches for changes in users list.

Method Details

close() @@ -172,7 +172,7 @@

Method Details

watch(userKey, body=None, event=None, x__xgafv=None) -
Watch for changes in users list.
+  
Watches for changes in users list.
 
 Args:
   userKey: string, Email or immutable ID of the user (required)
diff --git a/docs/dyn/admin_directory_v1.users.html b/docs/dyn/admin_directory_v1.users.html
index a7cad606b22..481edf6c445 100644
--- a/docs/dyn/admin_directory_v1.users.html
+++ b/docs/dyn/admin_directory_v1.users.html
@@ -110,7 +110,7 @@ 

Instance Methods

Updates a user using patch semantics. The update method should be used instead, since it also supports patch semantics and has better performance. This method is unable to clear fields that contain repeated objects (`addresses`, `phones`, etc). Use the update method instead.

signOut(userKey, x__xgafv=None)

-

Sign a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again.

+

Signs a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again.

undelete(userKey, body=None, x__xgafv=None)

Undeletes a deleted user.

@@ -119,7 +119,7 @@

Instance Methods

Updates a user. This method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved, and fields set to `null` will be cleared.

watch(body=None, customFieldMask=None, customer=None, domain=None, event=None, maxResults=None, orderBy=None, pageToken=None, projection=None, query=None, showDeleted=None, sortOrder=None, viewType=None, x__xgafv=None)

-

Watch for changes in users list

+

Watches for changes in users list.

Method Details

close() @@ -655,7 +655,7 @@

Method Details

signOut(userKey, x__xgafv=None) -
Sign a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again.
+  
Signs a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again.
 
 Args:
   userKey: string, Identifies the target user in the API request. The value can be the user's primary email address, alias email address, or unique user ID. (required)
@@ -828,7 +828,7 @@ 

Method Details

watch(body=None, customFieldMask=None, customer=None, domain=None, event=None, maxResults=None, orderBy=None, pageToken=None, projection=None, query=None, showDeleted=None, sortOrder=None, viewType=None, x__xgafv=None) -
Watch for changes in users list
+  
Watches for changes in users list.
 
 Args:
   body: object, The request body.
diff --git a/docs/dyn/admin_directory_v1.verificationCodes.html b/docs/dyn/admin_directory_v1.verificationCodes.html
index e04a579ebbe..d78c1199c1b 100644
--- a/docs/dyn/admin_directory_v1.verificationCodes.html
+++ b/docs/dyn/admin_directory_v1.verificationCodes.html
@@ -79,10 +79,10 @@ 

Instance Methods

Close httplib2 connections.

generate(userKey, x__xgafv=None)

-

Generate new backup verification codes for the user.

+

Generates new backup verification codes for the user.

invalidate(userKey, x__xgafv=None)

-

Invalidate the current backup verification codes for the user.

+

Invalidates the current backup verification codes for the user.

list(userKey, x__xgafv=None)

Returns the current set of valid backup verification codes for the specified user.

@@ -94,7 +94,7 @@

Method Details

generate(userKey, x__xgafv=None) -
Generate new backup verification codes for the user.
+  
Generates new backup verification codes for the user.
 
 Args:
   userKey: string, Email or immutable ID of the user (required)
@@ -107,7 +107,7 @@ 

Method Details

invalidate(userKey, x__xgafv=None) -
Invalidate the current backup verification codes for the user.
+  
Invalidates the current backup verification codes for the user.
 
 Args:
   userKey: string, Email or immutable ID of the user (required)
diff --git a/docs/dyn/analyticsadmin_v1alpha.accounts.html b/docs/dyn/analyticsadmin_v1alpha.accounts.html
index deae01401cf..00a4c19511d 100644
--- a/docs/dyn/analyticsadmin_v1alpha.accounts.html
+++ b/docs/dyn/analyticsadmin_v1alpha.accounts.html
@@ -374,7 +374,7 @@ 

Method Details

"customMetric": { # A definition for a custom metric. # A snapshot of a CustomMetric resource in change history. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. @@ -491,7 +491,7 @@

Method Details

"customMetric": { # A definition for a custom metric. # A snapshot of a CustomMetric resource in change history. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. diff --git a/docs/dyn/analyticsadmin_v1alpha.properties.customMetrics.html b/docs/dyn/analyticsadmin_v1alpha.properties.customMetrics.html index 9355f25fe61..04244525a6c 100644 --- a/docs/dyn/analyticsadmin_v1alpha.properties.customMetrics.html +++ b/docs/dyn/analyticsadmin_v1alpha.properties.customMetrics.html @@ -137,7 +137,7 @@

Method Details

{ # A definition for a custom metric. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. @@ -154,7 +154,7 @@

Method Details

{ # A definition for a custom metric. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. @@ -178,7 +178,7 @@

Method Details

{ # A definition for a custom metric. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. @@ -206,7 +206,7 @@

Method Details

{ # A definition for a custom metric. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. @@ -242,7 +242,7 @@

Method Details

{ # A definition for a custom metric. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. @@ -260,7 +260,7 @@

Method Details

{ # A definition for a custom metric. "description": "A String", # Optional. Description for this custom dimension. Max length of 150 characters. "displayName": "A String", # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets. - "measurementUnit": "A String", # Required. Immutable. The type for the custom metric's value. + "measurementUnit": "A String", # Required. The type for the custom metric's value. "name": "A String", # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} "parameterName": "A String", # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics. "scope": "A String", # Required. Immutable. The scope of this custom metric. diff --git a/docs/dyn/androidpublisher_v3.edits.bundles.html b/docs/dyn/androidpublisher_v3.edits.bundles.html index bf116370012..9833684259c 100644 --- a/docs/dyn/androidpublisher_v3.edits.bundles.html +++ b/docs/dyn/androidpublisher_v3.edits.bundles.html @@ -104,9 +104,9 @@

Method Details

Returns: An object of the form: - { # Response listing all bundles. - "bundles": [ # All bundles. - { # Information about a bundle. The resource for BundlesService. + { # Response listing all app bundles. + "bundles": [ # All app bundles. + { # Information about an app bundle. The resource for BundlesService. "sha1": "A String", # A sha1 hash of the upload payload, encoded as a hex string and matching the output of the sha1sum command. "sha256": "A String", # A sha256 hash of the upload payload, encoded as a hex string and matching the output of the sha256sum command. "versionCode": 42, # The version code of the Android App Bundle, as specified in the Android App Bundle's base module APK manifest file. @@ -123,7 +123,7 @@

Method Details

Args: packageName: string, Package name of the app. (required) editId: string, Identifier of the edit. (required) - ackBundleInstallationWarning: boolean, Must be set to true if the bundle installation may trigger a warning on user devices (for example, if installation size may be over a threshold, typically 100 MB). + ackBundleInstallationWarning: boolean, Must be set to true if the app bundle installation may trigger a warning on user devices (for example, if installation size may be over a threshold, typically 100 MB). media_body: string, The filename of the media request body, or an instance of a MediaUpload object. media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object. x__xgafv: string, V1 error format. @@ -134,7 +134,7 @@

Method Details

Returns: An object of the form: - { # Information about a bundle. The resource for BundlesService. + { # Information about an app bundle. The resource for BundlesService. "sha1": "A String", # A sha1 hash of the upload payload, encoded as a hex string and matching the output of the sha1sum command. "sha256": "A String", # A sha256 hash of the upload payload, encoded as a hex string and matching the output of the sha256sum command. "versionCode": 42, # The version code of the Android App Bundle, as specified in the Android App Bundle's base module APK manifest file. diff --git a/docs/dyn/chat_v1.dms.conversations.html b/docs/dyn/chat_v1.dms.conversations.html index 7ea2a8c123a..032169e0675 100644 --- a/docs/dyn/chat_v1.dms.conversations.html +++ b/docs/dyn/chat_v1.dms.conversations.html @@ -97,6 +97,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -345,6 +870,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, diff --git a/docs/dyn/chat_v1.dms.html b/docs/dyn/chat_v1.dms.html index 060f7d463f1..83b6c15cb89 100644 --- a/docs/dyn/chat_v1.dms.html +++ b/docs/dyn/chat_v1.dms.html @@ -105,6 +105,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -353,6 +878,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -452,156 +1502,681 @@

Method Details

}, ], }, - "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. - "url": "A String", # The URL to open. - }, - }, - }, - "textButton": { # A button with text and onclick action. # A button with text and onclick action. - "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. - "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. - "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "textButton": { # A button with text and onclick action. # A button with text and onclick action. + "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + ], + "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget. + "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image. + "imageUrl": "A String", # The URL of the image. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget. + "bottomLabel": "A String", # The text of the bottom label. Formatted text supported. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "imageButton": { # An image button with an onclick action. # A button with image and onclick action. + "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API. + "iconUrl": "A String", # The icon specified by a URL. + "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "textButton": { # A button with text and onclick action. # A button with text and onclick action. + "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "content": "A String", # The text of the content. Formatted text supported and always required. + "contentMultiline": True or False, # If the content should be multiline. + "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image. + "iconUrl": "A String", # The icon specified by a URL. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "topLabel": "A String", # The text of the top label. Formatted text supported. + }, + "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget. + "text": "A String", + }, + }, + ], + }, + ], + }, + ], + "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server. + "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications). + "name": "A String", + "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips. + "sender": { # A user in Google Chat. # The user who created the message. + "displayName": "A String", # The user's display name. + "domainId": "A String", # Obfuscated domain information. + "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible. + "name": "A String", # Resource name, in the format "users/*". + "type": "A String", # User type. + }, + "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable. + "commandId": "A String", # The id of the slash command invoked. + }, + "space": { # A room or DM in Hangouts Chat. # The space the message belongs to. + "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans. + "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs + "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human. + "threaded": True or False, # Whether the messages are threaded in this space. + "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead. + }, + "text": "A String", # Plain-text body of the message. + "thread": { # A thread in Hangouts Chat. # The thread the message belongs to. + "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4 + }, +}
+
+ +
+ webhooks(parent, body=None, threadKey=None, x__xgafv=None) +
Legacy path for creating message. Calling these will result in a BadRequest response.
+
+Args:
+  parent: string, Required. Space resource name, in the form "spaces/*". Example: spaces/AAAAMpdlehY (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A message in Hangouts Chat.
+  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+    "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog
+      "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success.
+        "statusCode": "A String", # The status code.
+        "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors.
+      },
+      "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request.
+        "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog.
+          "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ```
+            { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser.
+              "actionLabel": "A String", # The label that displays as the action menu item.
+              "onClick": { # The onclick action for this action item.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+            },
+          ],
+          "displayStyle": "A String", # The display style for peekCardHeader.
+          "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card.
+            "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+            "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+          },
+          "header": { # The header of the card. A header usually contains a title and an image.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation.
+          "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "sections": [ # Sections are separated by a line divider.
+            { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float.
+              "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given.
+              "header": "A String", # The header of the section. Formatted text is supported.
+              "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`.
+              "widgets": [ # A section must contain at least 1 widget.
+                { # A widget is a UI element that presents texts, images, etc.
+                  "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ```
+                    "buttons": [
+                      { # A button. Can be a text button or an image button.
+                        "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                        "icon": { # The icon image.
+                          "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                          "iconUrl": "A String", # The icon specified by a URL.
+                          "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                          "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                        },
+                        "onClick": { # The action to perform when the button is clicked.
+                          "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                          "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "openLink": { # If specified, this onClick triggers an open link action.
+                            "onClose": "A String",
+                            "openAs": "A String",
+                            "url": "A String", # The URL to open.
+                          },
+                        },
+                        "text": "A String", # The text of the button.
+                      },
+                    ],
+                  },
+                  "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ```
+                    "label": "A String", # The label for the field that displays to the user.
+                    "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.
+                    "type": "A String", # The type of the date/time picker.
+                    "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
+                  },
+                  "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ```
+                    "bottomLabel": "A String", # The formatted text label that shows below the main text.
+                    "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                      "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                      "icon": { # The icon image.
+                        "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                        "iconUrl": "A String", # The icon specified by a URL.
+                        "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                        "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                      },
+                      "onClick": { # The action to perform when the button is clicked.
+                        "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                        "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "openLink": { # If specified, this onClick triggers an open link action.
+                          "onClose": "A String",
+                          "openAs": "A String",
+                          "url": "A String", # The URL to open.
+                        },
+                      },
+                      "text": "A String", # The text of the button.
+                    },
+                    "endIcon": { # An icon displayed after the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "icon": { # Deprecated in favor of start_icon.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "onClick": { # Only the top and bottom label and content region are clickable.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                    "startIcon": { # The icon displayed in front of the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "switchControl": { # A switch widget can be clicked to change its state or trigger an action.
+                      "controlType": "A String", # The control type, either switch or checkbox.
+                      "name": "A String", # The name of the switch widget that's used in formInput.
+                      "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "selected": True or False, # If the switch is selected.
+                      "value": "A String", # The value is what is passed back in the callback.
+                    },
+                    "text": "A String", # Required. The main widget formatted text. See Text formatting for details.
+                    "topLabel": "A String", # The formatted text label that shows above the main text.
+                    "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.
+                  },
+                  "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ```
+                  },
+                  "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ```
+                    "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item.
+                      "cornerRadius": 42, # The corner radius for the border.
+                      "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "type": "A String", # The border type.
+                    },
+                    "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion).
+                    "items": [ # The items to display in the grid.
+                      { # Represents a single item in the grid layout.
+                        "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.
+                        "image": { # The image that displays in the grid item.
+                          "altText": "A String", # The accessibility label for the image.
+                          "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image.
+                            "cornerRadius": 42, # The corner radius for the border.
+                            "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "type": "A String", # The border type.
+                          },
+                          "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image.
+                            "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
+                            "type": "A String", # The crop type.
+                          },
+                          "imageUri": "A String", # The image URL.
+                        },
+                        "layout": "A String", # The layout to use for the grid item.
+                        "subtitle": "A String", # The grid item's subtitle.
+                        "textAlignment": "A String", # The horizontal alignment of the grid item's text.
+                        "title": "A String", # The grid item's title.
+                      },
+                    ],
+                    "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
                         "url": "A String", # The URL to open.
                       },
                     },
-                    "text": "A String", # The text of the button.
-                  },
-                },
-              ],
-              "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                "imageUrl": "A String", # The URL of the image.
-                "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    "parameters": [ # List of action parameters.
-                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                        "key": "A String", # The name of the parameter for the action script.
-                        "value": "A String", # The value of the parameter.
-                      },
-                    ],
-                  },
-                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                    "url": "A String", # The URL to open.
+                    "title": "A String", # The text that displays in the grid header.
                   },
-                },
-              },
-              "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
-                "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                  "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                    "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                    "iconUrl": "A String", # The icon specified by a URL.
-                    "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                  "horizontalAlignment": "A String", # The horizontal alignment of this widget.
+                  "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ```
+                    "altText": "A String", # The alternative text of this image, used for accessibility.
+                    "imageUrl": "A String", # An image URL.
+                    "onClick": {
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        "url": "A String", # The URL to open.
-                      },
-                    },
-                  },
-                  "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
                         "url": "A String", # The URL to open.
                       },
                     },
-                    "text": "A String", # The text of the button.
                   },
-                },
-                "content": "A String", # The text of the content. Formatted text supported and always required.
-                "contentMultiline": True or False, # If the content should be multiline.
-                "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                "iconUrl": "A String", # The icon specified by a URL.
-                "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    "parameters": [ # List of action parameters.
-                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                        "key": "A String", # The name of the parameter for the action script.
-                        "value": "A String", # The value of the parameter.
+                  "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ```
+                    "items": [
+                      { # The item in the switch control. A radio button, at most one of the items is selected.
+                        "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored.
+                        "text": "A String", # The text to be displayed.
+                        "value": "A String", # The value associated with this item. The client should use this as a form input value.
                       },
                     ],
+                    "label": "A String", # The label displayed ahead of the switch control.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String",
                   },
-                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                    "url": "A String", # The URL to open.
+                  "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ```
+                    "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "hintText": "A String", # The hint text.
+                    "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input.
+                      "items": [ # A list of suggestions items which will be used in are used in autocomplete.
+                        { # A suggestion item. Only supports text for now.
+                          "text": "A String",
+                        },
+                      ],
+                    },
+                    "label": "A String", # At least one of label and hintText must be specified.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String", # The style of the text, for example, a single line or multiple lines.
+                    "value": "A String", # The default value when there is no input from the user.
+                  },
+                  "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ```
+                    "text": "A String", # The text that's shown in the widget.
                   },
                 },
-                "topLabel": "A String", # The text of the top label. Formatted text supported.
-              },
-              "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                "text": "A String",
-              },
+              ],
             },
           ],
         },
-      ],
+      },
     },
-  ],
-  "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
-  "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-  "name": "A String",
-  "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-  "sender": { # A user in Google Chat. # The user who created the message.
-    "displayName": "A String", # The user's display name.
-    "domainId": "A String", # Obfuscated domain information.
-    "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible.
-    "name": "A String", # Resource name, in the format "users/*".
-    "type": "A String", # User type.
-  },
-  "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable.
-    "commandId": "A String", # The id of the slash command invoked.
-  },
-  "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
-    "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-    "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
-    "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
-    "threaded": True or False, # Whether the messages are threaded in this space.
-    "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-  },
-  "text": "A String", # Plain-text body of the message.
-  "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
-    "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-  },
-}
-
- -
- webhooks(parent, body=None, threadKey=None, x__xgafv=None) -
Legacy path for creating message. Calling these will result in a BadRequest response.
-
-Args:
-  parent: string, Required. Space resource name, in the form "spaces/*". Example: spaces/AAAAMpdlehY (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # A message in Hangouts Chat.
-  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
     "type": "A String", # The type of bot response.
     "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
   },
@@ -850,6 +2425,531 @@ 

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, diff --git a/docs/dyn/chat_v1.rooms.conversations.html b/docs/dyn/chat_v1.rooms.conversations.html index 835c91525e1..e888e5d63df 100644 --- a/docs/dyn/chat_v1.rooms.conversations.html +++ b/docs/dyn/chat_v1.rooms.conversations.html @@ -97,6 +97,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -345,6 +870,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, diff --git a/docs/dyn/chat_v1.rooms.html b/docs/dyn/chat_v1.rooms.html index d10eab55270..c58c8206351 100644 --- a/docs/dyn/chat_v1.rooms.html +++ b/docs/dyn/chat_v1.rooms.html @@ -105,6 +105,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -353,6 +878,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -452,156 +1502,681 @@

Method Details

}, ], }, - "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. - "url": "A String", # The URL to open. - }, - }, - }, - "textButton": { # A button with text and onclick action. # A button with text and onclick action. - "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. - "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. - "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "textButton": { # A button with text and onclick action. # A button with text and onclick action. + "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + ], + "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget. + "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image. + "imageUrl": "A String", # The URL of the image. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget. + "bottomLabel": "A String", # The text of the bottom label. Formatted text supported. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "imageButton": { # An image button with an onclick action. # A button with image and onclick action. + "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API. + "iconUrl": "A String", # The icon specified by a URL. + "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "textButton": { # A button with text and onclick action. # A button with text and onclick action. + "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "content": "A String", # The text of the content. Formatted text supported and always required. + "contentMultiline": True or False, # If the content should be multiline. + "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image. + "iconUrl": "A String", # The icon specified by a URL. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "topLabel": "A String", # The text of the top label. Formatted text supported. + }, + "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget. + "text": "A String", + }, + }, + ], + }, + ], + }, + ], + "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server. + "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications). + "name": "A String", + "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips. + "sender": { # A user in Google Chat. # The user who created the message. + "displayName": "A String", # The user's display name. + "domainId": "A String", # Obfuscated domain information. + "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible. + "name": "A String", # Resource name, in the format "users/*". + "type": "A String", # User type. + }, + "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable. + "commandId": "A String", # The id of the slash command invoked. + }, + "space": { # A room or DM in Hangouts Chat. # The space the message belongs to. + "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans. + "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs + "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human. + "threaded": True or False, # Whether the messages are threaded in this space. + "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead. + }, + "text": "A String", # Plain-text body of the message. + "thread": { # A thread in Hangouts Chat. # The thread the message belongs to. + "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4 + }, +}
+
+ +
+ webhooks(parent, body=None, threadKey=None, x__xgafv=None) +
Legacy path for creating message. Calling these will result in a BadRequest response.
+
+Args:
+  parent: string, Required. Space resource name, in the form "spaces/*". Example: spaces/AAAAMpdlehY (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A message in Hangouts Chat.
+  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+    "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog
+      "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success.
+        "statusCode": "A String", # The status code.
+        "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors.
+      },
+      "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request.
+        "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog.
+          "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ```
+            { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser.
+              "actionLabel": "A String", # The label that displays as the action menu item.
+              "onClick": { # The onclick action for this action item.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+            },
+          ],
+          "displayStyle": "A String", # The display style for peekCardHeader.
+          "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card.
+            "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+            "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+          },
+          "header": { # The header of the card. A header usually contains a title and an image.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation.
+          "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "sections": [ # Sections are separated by a line divider.
+            { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float.
+              "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given.
+              "header": "A String", # The header of the section. Formatted text is supported.
+              "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`.
+              "widgets": [ # A section must contain at least 1 widget.
+                { # A widget is a UI element that presents texts, images, etc.
+                  "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ```
+                    "buttons": [
+                      { # A button. Can be a text button or an image button.
+                        "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                        "icon": { # The icon image.
+                          "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                          "iconUrl": "A String", # The icon specified by a URL.
+                          "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                          "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                        },
+                        "onClick": { # The action to perform when the button is clicked.
+                          "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                          "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "openLink": { # If specified, this onClick triggers an open link action.
+                            "onClose": "A String",
+                            "openAs": "A String",
+                            "url": "A String", # The URL to open.
+                          },
+                        },
+                        "text": "A String", # The text of the button.
+                      },
+                    ],
+                  },
+                  "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ```
+                    "label": "A String", # The label for the field that displays to the user.
+                    "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.
+                    "type": "A String", # The type of the date/time picker.
+                    "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
+                  },
+                  "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ```
+                    "bottomLabel": "A String", # The formatted text label that shows below the main text.
+                    "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                      "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                      "icon": { # The icon image.
+                        "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                        "iconUrl": "A String", # The icon specified by a URL.
+                        "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                        "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                      },
+                      "onClick": { # The action to perform when the button is clicked.
+                        "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                        "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "openLink": { # If specified, this onClick triggers an open link action.
+                          "onClose": "A String",
+                          "openAs": "A String",
+                          "url": "A String", # The URL to open.
+                        },
+                      },
+                      "text": "A String", # The text of the button.
+                    },
+                    "endIcon": { # An icon displayed after the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "icon": { # Deprecated in favor of start_icon.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "onClick": { # Only the top and bottom label and content region are clickable.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                    "startIcon": { # The icon displayed in front of the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "switchControl": { # A switch widget can be clicked to change its state or trigger an action.
+                      "controlType": "A String", # The control type, either switch or checkbox.
+                      "name": "A String", # The name of the switch widget that's used in formInput.
+                      "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "selected": True or False, # If the switch is selected.
+                      "value": "A String", # The value is what is passed back in the callback.
+                    },
+                    "text": "A String", # Required. The main widget formatted text. See Text formatting for details.
+                    "topLabel": "A String", # The formatted text label that shows above the main text.
+                    "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.
+                  },
+                  "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ```
+                  },
+                  "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ```
+                    "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item.
+                      "cornerRadius": 42, # The corner radius for the border.
+                      "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "type": "A String", # The border type.
+                    },
+                    "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion).
+                    "items": [ # The items to display in the grid.
+                      { # Represents a single item in the grid layout.
+                        "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.
+                        "image": { # The image that displays in the grid item.
+                          "altText": "A String", # The accessibility label for the image.
+                          "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image.
+                            "cornerRadius": 42, # The corner radius for the border.
+                            "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "type": "A String", # The border type.
+                          },
+                          "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image.
+                            "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
+                            "type": "A String", # The crop type.
+                          },
+                          "imageUri": "A String", # The image URL.
+                        },
+                        "layout": "A String", # The layout to use for the grid item.
+                        "subtitle": "A String", # The grid item's subtitle.
+                        "textAlignment": "A String", # The horizontal alignment of the grid item's text.
+                        "title": "A String", # The grid item's title.
+                      },
+                    ],
+                    "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
                         "url": "A String", # The URL to open.
                       },
                     },
-                    "text": "A String", # The text of the button.
-                  },
-                },
-              ],
-              "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                "imageUrl": "A String", # The URL of the image.
-                "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    "parameters": [ # List of action parameters.
-                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                        "key": "A String", # The name of the parameter for the action script.
-                        "value": "A String", # The value of the parameter.
-                      },
-                    ],
-                  },
-                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                    "url": "A String", # The URL to open.
+                    "title": "A String", # The text that displays in the grid header.
                   },
-                },
-              },
-              "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
-                "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                  "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                    "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                    "iconUrl": "A String", # The icon specified by a URL.
-                    "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                  "horizontalAlignment": "A String", # The horizontal alignment of this widget.
+                  "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ```
+                    "altText": "A String", # The alternative text of this image, used for accessibility.
+                    "imageUrl": "A String", # An image URL.
+                    "onClick": {
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        "url": "A String", # The URL to open.
-                      },
-                    },
-                  },
-                  "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
                         "url": "A String", # The URL to open.
                       },
                     },
-                    "text": "A String", # The text of the button.
                   },
-                },
-                "content": "A String", # The text of the content. Formatted text supported and always required.
-                "contentMultiline": True or False, # If the content should be multiline.
-                "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                "iconUrl": "A String", # The icon specified by a URL.
-                "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    "parameters": [ # List of action parameters.
-                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                        "key": "A String", # The name of the parameter for the action script.
-                        "value": "A String", # The value of the parameter.
+                  "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ```
+                    "items": [
+                      { # The item in the switch control. A radio button, at most one of the items is selected.
+                        "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored.
+                        "text": "A String", # The text to be displayed.
+                        "value": "A String", # The value associated with this item. The client should use this as a form input value.
                       },
                     ],
+                    "label": "A String", # The label displayed ahead of the switch control.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String",
                   },
-                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                    "url": "A String", # The URL to open.
+                  "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ```
+                    "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "hintText": "A String", # The hint text.
+                    "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input.
+                      "items": [ # A list of suggestions items which will be used in are used in autocomplete.
+                        { # A suggestion item. Only supports text for now.
+                          "text": "A String",
+                        },
+                      ],
+                    },
+                    "label": "A String", # At least one of label and hintText must be specified.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String", # The style of the text, for example, a single line or multiple lines.
+                    "value": "A String", # The default value when there is no input from the user.
+                  },
+                  "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ```
+                    "text": "A String", # The text that's shown in the widget.
                   },
                 },
-                "topLabel": "A String", # The text of the top label. Formatted text supported.
-              },
-              "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                "text": "A String",
-              },
+              ],
             },
           ],
         },
-      ],
+      },
     },
-  ],
-  "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
-  "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-  "name": "A String",
-  "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-  "sender": { # A user in Google Chat. # The user who created the message.
-    "displayName": "A String", # The user's display name.
-    "domainId": "A String", # Obfuscated domain information.
-    "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible.
-    "name": "A String", # Resource name, in the format "users/*".
-    "type": "A String", # User type.
-  },
-  "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable.
-    "commandId": "A String", # The id of the slash command invoked.
-  },
-  "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
-    "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-    "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
-    "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
-    "threaded": True or False, # Whether the messages are threaded in this space.
-    "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-  },
-  "text": "A String", # Plain-text body of the message.
-  "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
-    "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-  },
-}
-
- -
- webhooks(parent, body=None, threadKey=None, x__xgafv=None) -
Legacy path for creating message. Calling these will result in a BadRequest response.
-
-Args:
-  parent: string, Required. Space resource name, in the form "spaces/*". Example: spaces/AAAAMpdlehY (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # A message in Hangouts Chat.
-  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
     "type": "A String", # The type of bot response.
     "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
   },
@@ -850,6 +2425,531 @@ 

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, diff --git a/docs/dyn/chat_v1.spaces.html b/docs/dyn/chat_v1.spaces.html index d987d9dcce3..9aa3452df06 100644 --- a/docs/dyn/chat_v1.spaces.html +++ b/docs/dyn/chat_v1.spaces.html @@ -182,6 +182,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -430,6 +955,531 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, diff --git a/docs/dyn/chat_v1.spaces.messages.html b/docs/dyn/chat_v1.spaces.messages.html index bd701f548ef..b21bf86426a 100644 --- a/docs/dyn/chat_v1.spaces.messages.html +++ b/docs/dyn/chat_v1.spaces.messages.html @@ -111,6 +111,1304 @@

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, + "type": "A String", # The type of bot response. + "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) + }, + "annotations": [ # Output only. Annotations associated with the text in this message. + { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!" ``` The corresponding annotations metadata: ``` "annotations":[{ "type":"USER_MENTION", "startIndex":6, "length":7, "userMention": { "user": { "name":"users/107946847022116401880", "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" }, "type":"MENTION" } }] ``` + "length": 42, # Length of the substring in the plain-text message body this annotation corresponds to. + "slashCommand": { # Annotation metadata for slash commands (/). # The metadata for a slash command. + "bot": { # A user in Google Chat. # The bot whose command was invoked. + "displayName": "A String", # The user's display name. + "domainId": "A String", # Obfuscated domain information. + "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible. + "name": "A String", # Resource name, in the format "users/*". + "type": "A String", # User type. + }, + "commandId": "A String", # The command id of the invoked slash command. + "commandName": "A String", # The name of the invoked slash command. + "triggersDialog": True or False, # Indicating whether the slash command is for a dialog. + "type": "A String", # The type of slash command. + }, + "startIndex": 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to. + "type": "A String", # The type of this annotation. + "userMention": { # Annotation metadata for user mentions (@). # The metadata of user mention. + "type": "A String", # The type of user mention. + "user": { # A user in Google Chat. # The user mentioned. + "displayName": "A String", # The user's display name. + "domainId": "A String", # Obfuscated domain information. + "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible. + "name": "A String", # Resource name, in the format "users/*". + "type": "A String", # User type. + }, + }, + }, + ], + "argumentText": "A String", # Plain-text body of the message with all bot mentions stripped out. + "attachment": [ # User uploaded attachment. + { # An attachment in Hangouts Chat. + "attachmentDataRef": { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data. + "resourceName": "A String", # The resource name of the attachment data. This is used with the media API to download the attachment data. + }, + "contentName": "A String", # The original file name for the content, not the full path. + "contentType": "A String", # The content type (MIME type) of the file. + "downloadUri": "A String", # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content. + "driveDataRef": { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API. + "driveFileId": "A String", # The id for the drive file, for use with the Drive API. + }, + "name": "A String", # Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*". + "source": "A String", # The source of the attachment. + "thumbnailUri": "A String", # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content. + }, + ], + "cards": [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message. + { # A card is a UI element that can contain UI widgets such as texts, images. + "cardActions": [ # The actions of this card. + { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser. + "actionLabel": "A String", # The label used to be displayed in the action menu item. + "onClick": { # An onclick action (e.g. open a link). # The onclick action for this action item. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + ], + "header": { # The header of the card. A header usually contains a title and an image. + "imageStyle": "A String", # The image's type (e.g. square border or circular border). + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines. + }, + "name": "A String", # Name of the card. + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float). + "header": "A String", # The header of the section, text formatted supported. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttons": [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set. + { # A button. Can be a text button or an image button. + "imageButton": { # An image button with an onclick action. # A button with image and onclick action. + "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API. + "iconUrl": "A String", # The icon specified by a URL. + "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "textButton": { # A button with text and onclick action. # A button with text and onclick action. + "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + ], + "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget. + "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image. + "imageUrl": "A String", # The URL of the image. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget. + "bottomLabel": "A String", # The text of the bottom label. Formatted text supported. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "imageButton": { # An image button with an onclick action. # A button with image and onclick action. + "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API. + "iconUrl": "A String", # The icon specified by a URL. + "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + }, + "textButton": { # A button with text and onclick action. # A button with text and onclick action. + "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "content": "A String", # The text of the content. Formatted text supported and always required. + "contentMultiline": True or False, # If the content should be multiline. + "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image. + "iconUrl": "A String", # The icon specified by a URL. + "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable. + "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified. + "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired. + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + }, + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "topLabel": "A String", # The text of the top label. Formatted text supported. + }, + "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget. + "text": "A String", + }, + }, + ], + }, + ], + }, + ], + "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server. + "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications). + "name": "A String", + "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips. + "sender": { # A user in Google Chat. # The user who created the message. + "displayName": "A String", # The user's display name. + "domainId": "A String", # Obfuscated domain information. + "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible. + "name": "A String", # Resource name, in the format "users/*". + "type": "A String", # User type. + }, + "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable. + "commandId": "A String", # The id of the slash command invoked. + }, + "space": { # A room or DM in Hangouts Chat. # The space the message belongs to. + "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans. + "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs + "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human. + "threaded": True or False, # Whether the messages are threaded in this space. + "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead. + }, + "text": "A String", # Plain-text body of the message. + "thread": { # A thread in Hangouts Chat. # The thread the message belongs to. + "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4 + }, +} + + threadKey: string, Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Hangouts Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message. + x__xgafv: string, V1 error format. + Allowed values + 1 - v1 error format + 2 - v2 error format + +Returns: + An object of the form: + + { # A message in Hangouts Chat. + "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, @@ -306,59 +1604,608 @@

Method Details

}, ], }, - "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. - "url": "A String", # The URL to open. + "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified. + "url": "A String", # The URL to open. + }, + }, + "topLabel": "A String", # The text of the top label. Formatted text supported. + }, + "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget. + "text": "A String", + }, + }, + ], + }, + ], + }, + ], + "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server. + "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications). + "name": "A String", + "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips. + "sender": { # A user in Google Chat. # The user who created the message. + "displayName": "A String", # The user's display name. + "domainId": "A String", # Obfuscated domain information. + "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible. + "name": "A String", # Resource name, in the format "users/*". + "type": "A String", # User type. + }, + "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable. + "commandId": "A String", # The id of the slash command invoked. + }, + "space": { # A room or DM in Hangouts Chat. # The space the message belongs to. + "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans. + "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs + "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human. + "threaded": True or False, # Whether the messages are threaded in this space. + "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead. + }, + "text": "A String", # Plain-text body of the message. + "thread": { # A thread in Hangouts Chat. # The thread the message belongs to. + "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4 + }, +}
+
+ +
+ delete(name, x__xgafv=None) +
Deletes a message.
+
+Args:
+  name: string, Required. Resource name of the message to be deleted, in the form "spaces/*/messages/*" Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4 (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}
+
+ +
+ get(name, x__xgafv=None) +
Returns a message.
+
+Args:
+  name: string, Required. Resource name of the message to be retrieved, in the form "spaces/*/messages/*". Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4 (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A message in Hangouts Chat.
+  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+    "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog
+      "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success.
+        "statusCode": "A String", # The status code.
+        "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors.
+      },
+      "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request.
+        "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog.
+          "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ```
+            { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser.
+              "actionLabel": "A String", # The label that displays as the action menu item.
+              "onClick": { # The onclick action for this action item.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+            },
+          ],
+          "displayStyle": "A String", # The display style for peekCardHeader.
+          "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card.
+            "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+            "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+          },
+          "header": { # The header of the card. A header usually contains a title and an image.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation.
+          "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "sections": [ # Sections are separated by a line divider.
+            { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float.
+              "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given.
+              "header": "A String", # The header of the section. Formatted text is supported.
+              "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`.
+              "widgets": [ # A section must contain at least 1 widget.
+                { # A widget is a UI element that presents texts, images, etc.
+                  "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ```
+                    "buttons": [
+                      { # A button. Can be a text button or an image button.
+                        "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                        "icon": { # The icon image.
+                          "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                          "iconUrl": "A String", # The icon specified by a URL.
+                          "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                          "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                        },
+                        "onClick": { # The action to perform when the button is clicked.
+                          "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                          "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "openLink": { # If specified, this onClick triggers an open link action.
+                            "onClose": "A String",
+                            "openAs": "A String",
+                            "url": "A String", # The URL to open.
+                          },
+                        },
+                        "text": "A String", # The text of the button.
+                      },
+                    ],
+                  },
+                  "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ```
+                    "label": "A String", # The label for the field that displays to the user.
+                    "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.
+                    "type": "A String", # The type of the date/time picker.
+                    "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
+                  },
+                  "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ```
+                    "bottomLabel": "A String", # The formatted text label that shows below the main text.
+                    "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                      "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                      "icon": { # The icon image.
+                        "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                        "iconUrl": "A String", # The icon specified by a URL.
+                        "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                        "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                      },
+                      "onClick": { # The action to perform when the button is clicked.
+                        "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                        "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "openLink": { # If specified, this onClick triggers an open link action.
+                          "onClose": "A String",
+                          "openAs": "A String",
+                          "url": "A String", # The URL to open.
+                        },
+                      },
+                      "text": "A String", # The text of the button.
+                    },
+                    "endIcon": { # An icon displayed after the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "icon": { # Deprecated in favor of start_icon.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "onClick": { # Only the top and bottom label and content region are clickable.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                    "startIcon": { # The icon displayed in front of the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "switchControl": { # A switch widget can be clicked to change its state or trigger an action.
+                      "controlType": "A String", # The control type, either switch or checkbox.
+                      "name": "A String", # The name of the switch widget that's used in formInput.
+                      "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "selected": True or False, # If the switch is selected.
+                      "value": "A String", # The value is what is passed back in the callback.
+                    },
+                    "text": "A String", # Required. The main widget formatted text. See Text formatting for details.
+                    "topLabel": "A String", # The formatted text label that shows above the main text.
+                    "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.
+                  },
+                  "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ```
+                  },
+                  "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ```
+                    "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item.
+                      "cornerRadius": 42, # The corner radius for the border.
+                      "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "type": "A String", # The border type.
+                    },
+                    "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion).
+                    "items": [ # The items to display in the grid.
+                      { # Represents a single item in the grid layout.
+                        "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.
+                        "image": { # The image that displays in the grid item.
+                          "altText": "A String", # The accessibility label for the image.
+                          "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image.
+                            "cornerRadius": 42, # The corner radius for the border.
+                            "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "type": "A String", # The border type.
+                          },
+                          "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image.
+                            "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
+                            "type": "A String", # The crop type.
+                          },
+                          "imageUri": "A String", # The image URL.
+                        },
+                        "layout": "A String", # The layout to use for the grid item.
+                        "subtitle": "A String", # The grid item's subtitle.
+                        "textAlignment": "A String", # The horizontal alignment of the grid item's text.
+                        "title": "A String", # The grid item's title.
+                      },
+                    ],
+                    "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                    "title": "A String", # The text that displays in the grid header.
+                  },
+                  "horizontalAlignment": "A String", # The horizontal alignment of this widget.
+                  "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ```
+                    "altText": "A String", # The alternative text of this image, used for accessibility.
+                    "imageUrl": "A String", # An image URL.
+                    "onClick": {
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                  },
+                  "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ```
+                    "items": [
+                      { # The item in the switch control. A radio button, at most one of the items is selected.
+                        "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored.
+                        "text": "A String", # The text to be displayed.
+                        "value": "A String", # The value associated with this item. The client should use this as a form input value.
+                      },
+                    ],
+                    "label": "A String", # The label displayed ahead of the switch control.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String",
+                  },
+                  "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ```
+                    "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "hintText": "A String", # The hint text.
+                    "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input.
+                      "items": [ # A list of suggestions items which will be used in are used in autocomplete.
+                        { # A suggestion item. Only supports text for now.
+                          "text": "A String",
+                        },
+                      ],
+                    },
+                    "label": "A String", # At least one of label and hintText must be specified.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String", # The style of the text, for example, a single line or multiple lines.
+                    "value": "A String", # The default value when there is no input from the user.
+                  },
+                  "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ```
+                    "text": "A String", # The text that's shown in the widget.
                   },
                 },
-                "topLabel": "A String", # The text of the top label. Formatted text supported.
-              },
-              "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                "text": "A String",
-              },
+              ],
             },
           ],
         },
-      ],
+      },
     },
-  ],
-  "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
-  "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-  "name": "A String",
-  "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-  "sender": { # A user in Google Chat. # The user who created the message.
-    "displayName": "A String", # The user's display name.
-    "domainId": "A String", # Obfuscated domain information.
-    "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible.
-    "name": "A String", # Resource name, in the format "users/*".
-    "type": "A String", # User type.
-  },
-  "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable.
-    "commandId": "A String", # The id of the slash command invoked.
-  },
-  "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
-    "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-    "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
-    "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
-    "threaded": True or False, # Whether the messages are threaded in this space.
-    "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-  },
-  "text": "A String", # Plain-text body of the message.
-  "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
-    "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-  },
-}
-
-  threadKey: string, Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Hangouts Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A message in Hangouts Chat.
-  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
     "type": "A String", # The type of bot response.
     "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
   },
@@ -598,288 +2445,541 @@ 

Method Details

- delete(name, x__xgafv=None) -
Deletes a message.
-
-Args:
-  name: string, Required. Resource name of the message to be deleted, in the form "spaces/*/messages/*" Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4 (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
-}
-
- -
- get(name, x__xgafv=None) -
Returns a message.
+    update(name, body=None, updateMask=None, x__xgafv=None)
+  
Updates a message.
 
 Args:
-  name: string, Required. Resource name of the message to be retrieved, in the form "spaces/*/messages/*". Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4 (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
+  name: string, A parameter (required)
+  body: object, The request body.
+    The object takes the form of:
 
-    { # A message in Hangouts Chat.
+{ # A message in Hangouts Chat.
   "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
-    "type": "A String", # The type of bot response.
-    "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
-  },
-  "annotations": [ # Output only. Annotations associated with the text in this message.
-    { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!" ``` The corresponding annotations metadata: ``` "annotations":[{ "type":"USER_MENTION", "startIndex":6, "length":7, "userMention": { "user": { "name":"users/107946847022116401880", "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" }, "type":"MENTION" } }] ```
-      "length": 42, # Length of the substring in the plain-text message body this annotation corresponds to.
-      "slashCommand": { # Annotation metadata for slash commands (/). # The metadata for a slash command.
-        "bot": { # A user in Google Chat. # The bot whose command was invoked.
-          "displayName": "A String", # The user's display name.
-          "domainId": "A String", # Obfuscated domain information.
-          "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible.
-          "name": "A String", # Resource name, in the format "users/*".
-          "type": "A String", # User type.
-        },
-        "commandId": "A String", # The command id of the invoked slash command.
-        "commandName": "A String", # The name of the invoked slash command.
-        "triggersDialog": True or False, # Indicating whether the slash command is for a dialog.
-        "type": "A String", # The type of slash command.
-      },
-      "startIndex": 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
-      "type": "A String", # The type of this annotation.
-      "userMention": { # Annotation metadata for user mentions (@). # The metadata of user mention.
-        "type": "A String", # The type of user mention.
-        "user": { # A user in Google Chat. # The user mentioned.
-          "displayName": "A String", # The user's display name.
-          "domainId": "A String", # Obfuscated domain information.
-          "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible.
-          "name": "A String", # Resource name, in the format "users/*".
-          "type": "A String", # User type.
-        },
-      },
-    },
-  ],
-  "argumentText": "A String", # Plain-text body of the message with all bot mentions stripped out.
-  "attachment": [ # User uploaded attachment.
-    { # An attachment in Hangouts Chat.
-      "attachmentDataRef": { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
-        "resourceName": "A String", # The resource name of the attachment data. This is used with the media API to download the attachment data.
-      },
-      "contentName": "A String", # The original file name for the content, not the full path.
-      "contentType": "A String", # The content type (MIME type) of the file.
-      "downloadUri": "A String", # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
-      "driveDataRef": { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
-        "driveFileId": "A String", # The id for the drive file, for use with the Drive API.
+    "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog
+      "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success.
+        "statusCode": "A String", # The status code.
+        "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors.
       },
-      "name": "A String", # Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*".
-      "source": "A String", # The source of the attachment.
-      "thumbnailUri": "A String", # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
-    },
-  ],
-  "cards": [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
-    { # A card is a UI element that can contain UI widgets such as texts, images.
-      "cardActions": [ # The actions of this card.
-        { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
-          "actionLabel": "A String", # The label used to be displayed in the action menu item.
-          "onClick": { # An onclick action (e.g. open a link). # The onclick action for this action item.
-            "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-              "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-              "parameters": [ # List of action parameters.
-                { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                  "key": "A String", # The name of the parameter for the action script.
-                  "value": "A String", # The value of the parameter.
+      "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request.
+        "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog.
+          "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ```
+            { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser.
+              "actionLabel": "A String", # The label that displays as the action menu item.
+              "onClick": { # The onclick action for this action item.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                 },
-              ],
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
             },
-            "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-              "url": "A String", # The URL to open.
+          ],
+          "displayStyle": "A String", # The display style for peekCardHeader.
+          "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card.
+            "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
+            },
+            "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set.
+              "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+              "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+              "icon": { # The icon image.
+                "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                "iconUrl": "A String", # The icon specified by a URL.
+                "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+              },
+              "onClick": { # The action to perform when the button is clicked.
+                "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                  "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                  "loadIndicator": "A String",
+                  "parameters": [ # List of action parameters.
+                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                      "key": "A String", # The name of the parameter for the action script.
+                      "value": "A String", # The value of the parameter.
+                    },
+                  ],
+                  "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                },
+                "openLink": { # If specified, this onClick triggers an open link action.
+                  "onClose": "A String",
+                  "openAs": "A String",
+                  "url": "A String", # The URL to open.
+                },
+              },
+              "text": "A String", # The text of the button.
             },
           },
-        },
-      ],
-      "header": { # The header of the card. A header usually contains a title and an image.
-        "imageStyle": "A String", # The image's type (e.g. square border or circular border).
-        "imageUrl": "A String", # The URL of the image in the card header.
-        "subtitle": "A String", # The subtitle of the card header.
-        "title": "A String", # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
-      },
-      "name": "A String", # Name of the card.
-      "sections": [ # Sections are separated by a line divider.
-        { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
-          "header": "A String", # The header of the section, text formatted supported.
-          "widgets": [ # A section must contain at least 1 widget.
-            { # A widget is a UI element that presents texts, images, etc.
-              "buttons": [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
-                { # A button. Can be a text button or an image button.
-                  "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                    "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                    "iconUrl": "A String", # The icon specified by a URL.
-                    "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+          "header": { # The header of the card. A header usually contains a title and an image.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation.
+          "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards.
+            "imageAltText": "A String", # The alternative text of this image which is used for accessibility.
+            "imageType": "A String", # The image's type.
+            "imageUrl": "A String", # The URL of the image in the card header.
+            "subtitle": "A String", # The subtitle of the card header.
+            "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.
+          },
+          "sections": [ # Sections are separated by a line divider.
+            { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float.
+              "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given.
+              "header": "A String", # The header of the section. Formatted text is supported.
+              "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`.
+              "widgets": [ # A section must contain at least 1 widget.
+                { # A widget is a UI element that presents texts, images, etc.
+                  "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ```
+                    "buttons": [
+                      { # A button. Can be a text button or an image button.
+                        "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                        "icon": { # The icon image.
+                          "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                          "iconUrl": "A String", # The icon specified by a URL.
+                          "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                          "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                        },
+                        "onClick": { # The action to perform when the button is clicked.
+                          "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                          "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                            "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                            "loadIndicator": "A String",
+                            "parameters": [ # List of action parameters.
+                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                                "key": "A String", # The name of the parameter for the action script.
+                                "value": "A String", # The value of the parameter.
+                              },
+                            ],
+                            "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                          },
+                          "openLink": { # If specified, this onClick triggers an open link action.
+                            "onClose": "A String",
+                            "openAs": "A String",
+                            "url": "A String", # The URL to open.
+                          },
+                        },
+                        "text": "A String", # The text of the button.
+                      },
+                    ],
+                  },
+                  "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ```
+                    "label": "A String", # The label for the field that displays to the user.
+                    "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.
+                    "type": "A String", # The type of the date/time picker.
+                    "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
+                  },
+                  "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ```
+                    "bottomLabel": "A String", # The formatted text label that shows below the main text.
+                    "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                      "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions.
+                      "icon": { # The icon image.
+                        "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                        "iconUrl": "A String", # The icon specified by a URL.
+                        "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                        "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                      },
+                      "onClick": { # The action to perform when the button is clicked.
+                        "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                        "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                          "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                          "loadIndicator": "A String",
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                          "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                        },
+                        "openLink": { # If specified, this onClick triggers an open link action.
+                          "onClose": "A String",
+                          "openAs": "A String",
+                          "url": "A String", # The URL to open.
+                        },
+                      },
+                      "text": "A String", # The text of the button.
+                    },
+                    "endIcon": { # An icon displayed after the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "icon": { # Deprecated in favor of start_icon.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "onClick": { # Only the top and bottom label and content region are clickable.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                    "startIcon": { # The icon displayed in front of the text.
+                      "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.
+                      "knownIcon": "A String", # The icon specified by the string name of a list of known icons
+                    },
+                    "switchControl": { # A switch widget can be clicked to change its state or trigger an action.
+                      "controlType": "A String", # The control type, either switch or checkbox.
+                      "name": "A String", # The name of the switch widget that's used in formInput.
+                      "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                      },
+                      "selected": True or False, # If the switch is selected.
+                      "value": "A String", # The value is what is passed back in the callback.
+                    },
+                    "text": "A String", # Required. The main widget formatted text. See Text formatting for details.
+                    "topLabel": "A String", # The formatted text label that shows above the main text.
+                    "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.
+                  },
+                  "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ```
+                  },
+                  "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ```
+                    "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item.
+                      "cornerRadius": 42, # The corner radius for the border.
+                      "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "type": "A String", # The border type.
+                    },
+                    "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion).
+                    "items": [ # The items to display in the grid.
+                      { # Represents a single item in the grid layout.
+                        "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.
+                        "image": { # The image that displays in the grid item.
+                          "altText": "A String", # The accessibility label for the image.
+                          "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image.
+                            "cornerRadius": 42, # The corner radius for the border.
+                            "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`.
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "type": "A String", # The border type.
+                          },
+                          "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image.
+                            "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
+                            "type": "A String", # The crop type.
+                          },
+                          "imageUri": "A String", # The image URL.
+                        },
+                        "layout": "A String", # The layout to use for the grid item.
+                        "subtitle": "A String", # The grid item's subtitle.
+                        "textAlignment": "A String", # The horizontal alignment of the grid item's text.
+                        "title": "A String", # The grid item's title.
+                      },
+                    ],
+                    "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters.
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        "url": "A String", # The URL to open.
-                      },
-                    },
-                  },
-                  "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
                         "url": "A String", # The URL to open.
                       },
                     },
-                    "text": "A String", # The text of the button.
-                  },
-                },
-              ],
-              "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                "imageUrl": "A String", # The URL of the image.
-                "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    "parameters": [ # List of action parameters.
-                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                        "key": "A String", # The name of the parameter for the action script.
-                        "value": "A String", # The value of the parameter.
-                      },
-                    ],
-                  },
-                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                    "url": "A String", # The URL to open.
+                    "title": "A String", # The text that displays in the grid header.
                   },
-                },
-              },
-              "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
-                "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                  "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                    "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                    "iconUrl": "A String", # The icon specified by a URL.
-                    "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                  "horizontalAlignment": "A String", # The horizontal alignment of this widget.
+                  "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ```
+                    "altText": "A String", # The alternative text of this image, used for accessibility.
+                    "imageUrl": "A String", # An image URL.
+                    "onClick": {
+                      "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        "url": "A String", # The URL to open.
-                      },
-                    },
-                  },
-                  "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified.
+                      "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back.
+                        "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                        "loadIndicator": "A String",
                         "parameters": [ # List of action parameters.
                           { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
                             "key": "A String", # The name of the parameter for the action script.
                             "value": "A String", # The value of the parameter.
                           },
                         ],
+                        "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
                       },
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "openLink": { # If specified, this onClick triggers an open link action.
+                        "onClose": "A String",
+                        "openAs": "A String",
                         "url": "A String", # The URL to open.
                       },
                     },
-                    "text": "A String", # The text of the button.
                   },
-                },
-                "content": "A String", # The text of the content. Formatted text supported and always required.
-                "contentMultiline": True or False, # If the content should be multiline.
-                "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                "iconUrl": "A String", # The icon specified by a URL.
-                "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    "parameters": [ # List of action parameters.
-                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                        "key": "A String", # The name of the parameter for the action script.
-                        "value": "A String", # The value of the parameter.
+                  "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ```
+                    "items": [
+                      { # The item in the switch control. A radio button, at most one of the items is selected.
+                        "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored.
+                        "text": "A String", # The text to be displayed.
+                        "value": "A String", # The value associated with this item. The client should use this as a form input value.
                       },
                     ],
+                    "label": "A String", # The label displayed ahead of the switch control.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String",
                   },
-                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                    "url": "A String", # The URL to open.
+                  "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ```
+                    "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "hintText": "A String", # The hint text.
+                    "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input.
+                      "items": [ # A list of suggestions items which will be used in are used in autocomplete.
+                        { # A suggestion item. Only supports text for now.
+                          "text": "A String",
+                        },
+                      ],
+                    },
+                    "label": "A String", # At least one of label and hintText must be specified.
+                    "name": "A String", # The name of the text input which is used in formInput.
+                    "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function.
+                      "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated.
+                      "loadIndicator": "A String",
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                      "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.
+                    },
+                    "type": "A String", # The style of the text, for example, a single line or multiple lines.
+                    "value": "A String", # The default value when there is no input from the user.
+                  },
+                  "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ```
+                    "text": "A String", # The text that's shown in the widget.
                   },
                 },
-                "topLabel": "A String", # The text of the top label. Formatted text supported.
-              },
-              "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                "text": "A String",
-              },
+              ],
             },
           ],
         },
-      ],
+      },
     },
-  ],
-  "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
-  "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-  "name": "A String",
-  "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-  "sender": { # A user in Google Chat. # The user who created the message.
-    "displayName": "A String", # The user's display name.
-    "domainId": "A String", # Obfuscated domain information.
-    "isAnonymous": True or False, # True when the user is deleted or the user's profile is not visible.
-    "name": "A String", # Resource name, in the format "users/*".
-    "type": "A String", # User type.
-  },
-  "slashCommand": { # A Slash Command in Chat. # Slash command information, if applicable.
-    "commandId": "A String", # The id of the slash command invoked.
-  },
-  "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
-    "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-    "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
-    "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
-    "threaded": True or False, # Whether the messages are threaded in this space.
-    "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-  },
-  "text": "A String", # Plain-text body of the message.
-  "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
-    "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-  },
-}
-
- -
- update(name, body=None, updateMask=None, x__xgafv=None) -
Updates a message.
-
-Args:
-  name: string, A parameter (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # A message in Hangouts Chat.
-  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
     "type": "A String", # The type of bot response.
     "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
   },
@@ -1128,6 +3228,531 @@ 

Method Details

{ # A message in Hangouts Chat. "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted. + "dialogAction": { # Contains dialog if present as well as the ActionStatus for the request sent from user. # This response is for Dialog related events and must be accompanied by ResponseType.Dialog + "actionStatus": { # ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be. # Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success. + "statusCode": "A String", # The status code. + "userFacingMessage": "A String", # This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors. + }, + "dialog": { # Wrapper around the card body of the dialog. # Dialog for the request. + "body": { # A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { "header": { "title": "Heba Salam", "subtitle": "Software Engineer", "imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.png", "imageAltText": "Avatar for Heba Salam" }, "sections" : [ { "header": "Contact Info", "widgets": [ { "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": "heba.salam@example.com" } }, { "decoratedText": { "icon": { "knownIcon": "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { "buttons": [ { "textButton": { "text": "Share", }, "onClick": { "openLink": { "url": "https://example.com/share" } } }, { "textButton": { "text": "Edit", }, "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ], "name": "contact-card-K3wB6arF2H9L" } ``` # Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog. + "cardActions": [ # The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` "card_actions": [ { "actionLabel": "Setting", "onClick": { "action": { "functionName": "goToView", "parameters": [ { "key": "viewType", "value": "SETTING" } ], "loadIndicator": "LoadIndicator.SPINNER" } } }, { "actionLabel": "Send Feedback", "onClick": { "openLink": { "url": "https://example.com/feedback" } } } ] ``` + { # A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. + "actionLabel": "A String", # The label that displays as the action menu item. + "onClick": { # The onclick action for this action item. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + ], + "displayStyle": "A String", # The display style for peekCardHeader. + "fixedFooter": { # A persistent (sticky) footer that is added to the bottom of the card. # The fixed footer shown at the bottom of this card. + "primaryButton": { # A button. Can be a text button or an image button. # The primary button of the fixed footer. The button must be a text button with text and color set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "secondaryButton": { # A button. Can be a text button or an image button. # The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + }, + "header": { # The header of the card. A header usually contains a title and an image. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "name": "A String", # Name of the card, which is used as a identifier for the card in card navigation. + "peekCardHeader": { # When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. + "imageAltText": "A String", # The alternative text of this image which is used for accessibility. + "imageType": "A String", # The image's type. + "imageUrl": "A String", # The URL of the image in the card header. + "subtitle": "A String", # The subtitle of the card header. + "title": "A String", # The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines. + }, + "sections": [ # Sections are separated by a line divider. + { # A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float. + "collapsible": True or False, # Indicates whether this section is collapsible. If a section is collapsible, the description must be given. + "header": "A String", # The header of the section. Formatted text is supported. + "uncollapsibleWidgetsCount": 42, # The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`. + "widgets": [ # A section must contain at least 1 widget. + { # A widget is a UI element that presents texts, images, etc. + "buttonList": { # A list of buttons layed out horizontally. # A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` "buttonList": { "buttons": [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { "url": "https://example.com/calendar" } } }, ] } ``` + "buttons": [ + { # A button. Can be a text button or an image button. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + ], + }, + "dateTimePicker": { # The widget that lets users to specify a date and time. # Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` "date_time_picker": { "name": "appointment_time", "label": "Book your appointment at:", "type": "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } ``` + "label": "A String", # The label for the field that displays to the user. + "name": "A String", # The name of the text input that's used in formInput, and uniquely identifies this input. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "timezoneOffsetDate": 42, # The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side. + "type": "A String", # The type of the date/time picker. + "valueMsEpoch": "A String", # The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. + }, + "decoratedText": { # A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text. # Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" }, "topLabel": "Email Address", "content": "heba.salam@example.com", "bottomLabel": "This is a new Email address!", "switchWidget": { "name": "has_send_welcome_email_to_heba_salam", "selected": false, "controlType": "ControlType.CHECKBOX" } } ``` + "bottomLabel": "A String", # The formatted text label that shows below the main text. + "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action. + "altText": "A String", # The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead. + "color": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # If set, the button is filled with a solid background. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "disabled": True or False, # If true, the button is displayed in a disabled state and doesn't respond to user actions. + "icon": { # The icon image. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # The action to perform when the button is clicked. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "text": "A String", # The text of the button. + }, + "endIcon": { # An icon displayed after the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "icon": { # Deprecated in favor of start_icon. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "onClick": { # Only the top and bottom label and content region are clickable. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "startIcon": { # The icon displayed in front of the text. + "altText": "A String", # The description of the icon, used for accessibility. The default value is provided if you don't specify one. + "iconUrl": "A String", # The icon specified by a URL. + "imageType": "A String", # The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon. + "knownIcon": "A String", # The icon specified by the string name of a list of known icons + }, + "switchControl": { # A switch widget can be clicked to change its state or trigger an action. + "controlType": "A String", # The control type, either switch or checkbox. + "name": "A String", # The name of the switch widget that's used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The action when the switch state is changed. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "selected": True or False, # If the switch is selected. + "value": "A String", # The value is what is passed back in the callback. + }, + "text": "A String", # Required. The main widget formatted text. See Text formatting for details. + "topLabel": "A String", # The formatted text label that shows above the main text. + "wrapText": True or False, # The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated. + }, + "divider": { # A divider that appears in between widgets. # Displays a divider. For example, the following JSON creates a divider: ``` "divider": { } ``` + }, + "grid": { # Represents a Grid widget that displays items in a configurable grid layout. # Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A fine collection of items", "numColumns": 2, "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "items": [ "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": "CENTER" ], "onClick": { "openLink": { "url":"https://www.example.com" } } } ``` + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to each grid item. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "columnCount": 42, # The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion). + "items": [ # The items to display in the grid. + { # Represents a single item in the grid layout. + "id": "A String", # A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters. + "image": { # The image that displays in the grid item. + "altText": "A String", # The accessibility label for the image. + "borderStyle": { # Represents the complete border style applied to widgets. # The border style to apply to the image. + "cornerRadius": 42, # The corner radius for the border. + "strokeColor": { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... # The colors to use when the type is `BORDER_TYPE_STROKE`. + "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). + "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. + "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. + "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. + }, + "type": "A String", # The border type. + }, + "cropStyle": { # Represents the crop style applied to an image. # The crop style to apply to the image. + "aspectRatio": 3.14, # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. + "type": "A String", # The crop type. + }, + "imageUri": "A String", # The image URL. + }, + "layout": "A String", # The layout to use for the grid item. + "subtitle": "A String", # The grid item's subtitle. + "textAlignment": "A String", # The horizontal alignment of the grid item's text. + "title": "A String", # The grid item's title. + }, + ], + "onClick": { # This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters. + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + "title": "A String", # The text that displays in the grid header. + }, + "horizontalAlignment": "A String", # The horizontal alignment of this widget. + "image": { # An image that is specified by a URL and can have an onClick action. # Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` "image": { "imageUrl": "https://example.com/heba_salam.png" "altText": "Avatar for Heba Salam" } ``` + "altText": "A String", # The alternative text of this image, used for accessibility. + "imageUrl": "A String", # An image URL. + "onClick": { + "action": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, an action is triggered by this onClick. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "card": # Object with schema name: GoogleAppsCardV1Card # A new card is pushed to the card stack after clicking if specified. + "openDynamicLinkAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "openLink": { # If specified, this onClick triggers an open link action. + "onClose": "A String", + "openAs": "A String", + "url": "A String", # The URL to open. + }, + }, + }, + "selectionInput": { # A widget that creates a UI item (for example, a drop-down list) with options for users to select. # Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` "switchControl": { "name": "size", "label": "Size" "type": "SelectionType.DROPDOWN", "items": [ { "text": "S", "value": "small", "selected": false }, { "text": "M", "value": "medium", "selected": true }, { "text": "L", "value": "large", "selected": false }, { "text": "XL", "value": "extra_large", "selected": false } ] } ``` + "items": [ + { # The item in the switch control. A radio button, at most one of the items is selected. + "selected": True or False, # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored. + "text": "A String", # The text to be displayed. + "value": "A String", # The value associated with this item. The client should use this as a form input value. + }, + ], + "label": "A String", # The label displayed ahead of the switch control. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", + }, + "textInput": { # A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions. # Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` "textInput": { "name": "mailing_address", "label": "Mailing Address" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` "textInput": { "name": "preferred_programing_language", "label": "Preferred Language", "initialSuggestions": { "items": [ { "text": "C++" }, { "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } } ``` + "autoCompleteAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "hintText": "A String", # The hint text. + "initialSuggestions": { # A container wrapping elements necessary for showing suggestion items used in text input autocomplete. # The initial suggestions made before any user input. + "items": [ # A list of suggestions items which will be used in are used in autocomplete. + { # A suggestion item. Only supports text for now. + "text": "A String", + }, + ], + }, + "label": "A String", # At least one of label and hintText must be specified. + "name": "A String", # The name of the text input which is used in formInput. + "onChangeAction": { # An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # The onChange action, for example, invoke a function. + "function": "A String", # Apps Script function to invoke when the containing element is clicked/activated. + "loadIndicator": "A String", + "parameters": [ # List of action parameters. + { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters. + "key": "A String", # The name of the parameter for the action script. + "value": "A String", # The value of the parameter. + }, + ], + "persistValues": True or False, # Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed. + }, + "type": "A String", # The style of the text, for example, a single line or multiple lines. + "value": "A String", # The default value when there is no input from the user. + }, + "textParagraph": { # A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting") for details. # Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` "textParagraph": { "text": " *bold text*" } ``` + "text": "A String", # The text that's shown in the widget. + }, + }, + ], + }, + ], + }, + }, + }, "type": "A String", # The type of bot response. "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.) }, diff --git a/docs/dyn/cloudasset_v1.v1.html b/docs/dyn/cloudasset_v1.v1.html index a3a7f9bdfbf..3f1a4699da4 100644 --- a/docs/dyn/cloudasset_v1.v1.html +++ b/docs/dyn/cloudasset_v1.v1.html @@ -79,7 +79,7 @@

Instance Methods

Analyzes IAM policies to answer which identities have what accesses on which resources.

analyzeIamPolicyLongrunning(scope, body=None, x__xgafv=None)

-

Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the request to help callers to map responses to requests.

+

Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.

analyzeMove(resource, destinationParent=None, view=None, x__xgafv=None)

Analyze moving a resource to a specified destination without kicking off the actual move. The analysis is best effort depending on the user's permissions of viewing different hierarchical policies and configurations. The policies and configuration are subject to change before the actual resource migration takes place.

@@ -348,7 +348,7 @@

Method Details

analyzeIamPolicyLongrunning(scope, body=None, x__xgafv=None) -
Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the request to help callers to map responses to requests.
+  
Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.
 
 Args:
   scope: string, Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as "organizations/123"), a folder number (such as "folders/123"), a project ID (such as "projects/my-project-id"), or a project number (such as "projects/12345"). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). (required)
diff --git a/docs/dyn/cloudbuild_v1.projects.builds.html b/docs/dyn/cloudbuild_v1.projects.builds.html
index 6ed4772bc81..ffa4e8037ae 100644
--- a/docs/dyn/cloudbuild_v1.projects.builds.html
+++ b/docs/dyn/cloudbuild_v1.projects.builds.html
@@ -154,6 +154,10 @@ 

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -392,6 +396,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -661,6 +669,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -905,6 +917,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. diff --git a/docs/dyn/cloudbuild_v1.projects.locations.builds.html b/docs/dyn/cloudbuild_v1.projects.locations.builds.html index fb4b5828a8f..3e2fd20eb3d 100644 --- a/docs/dyn/cloudbuild_v1.projects.locations.builds.html +++ b/docs/dyn/cloudbuild_v1.projects.locations.builds.html @@ -153,6 +153,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -391,6 +395,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -660,6 +668,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -904,6 +916,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. diff --git a/docs/dyn/cloudbuild_v1.projects.locations.triggers.html b/docs/dyn/cloudbuild_v1.projects.locations.triggers.html index faec0611a5b..5c2898e074f 100644 --- a/docs/dyn/cloudbuild_v1.projects.locations.triggers.html +++ b/docs/dyn/cloudbuild_v1.projects.locations.triggers.html @@ -78,7 +78,7 @@

Instance Methods

close()

Close httplib2 connections.

- create(parent, body=None, projectId=None, x__xgafv=None)

+ create(parent, body, projectId=None, x__xgafv=None)

Creates a new `BuildTrigger`. This API is experimental.

delete(name, projectId=None, triggerId=None, x__xgafv=None)

@@ -93,7 +93,7 @@

Instance Methods

list_next(previous_request, previous_response)

Retrieves the next page of results.

- patch(resourceName, body=None, projectId=None, triggerId=None, x__xgafv=None)

+ patch(resourceName, body, projectId=None, triggerId=None, x__xgafv=None)

Updates a `BuildTrigger` by its project ID and trigger ID. This API is experimental.

run(name, body=None, x__xgafv=None)

@@ -108,7 +108,7 @@

Method Details

- create(parent, body=None, projectId=None, x__xgafv=None) + create(parent, body, projectId=None, x__xgafv=None)
Creates a new `BuildTrigger`. This API is experimental.
 
 Args:
@@ -152,6 +152,10 @@ 

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -375,6 +379,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -444,6 +453,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -667,6 +680,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -764,6 +782,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -987,6 +1009,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -1068,6 +1095,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -1291,6 +1322,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -1333,7 +1369,7 @@

Method Details

- patch(resourceName, body=None, projectId=None, triggerId=None, x__xgafv=None) + patch(resourceName, body, projectId=None, triggerId=None, x__xgafv=None)
Updates a `BuildTrigger` by its project ID and trigger ID. This API is experimental.
 
 Args:
@@ -1377,6 +1413,10 @@ 

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -1600,6 +1640,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -1670,6 +1715,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -1893,6 +1942,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, diff --git a/docs/dyn/cloudbuild_v1.projects.locations.workerPools.html b/docs/dyn/cloudbuild_v1.projects.locations.workerPools.html index b154dfe20da..525a4acf6a5 100644 --- a/docs/dyn/cloudbuild_v1.projects.locations.workerPools.html +++ b/docs/dyn/cloudbuild_v1.projects.locations.workerPools.html @@ -247,7 +247,7 @@

Method Details

Lists `WorkerPool`s.
 
 Args:
-  parent: string, Required. The parent of the collection of `WorkerPools`. Format: `projects/{project}/locations/location`. (required)
+  parent: string, Required. The parent of the collection of `WorkerPools`. Format: `projects/{project}/locations/{location}`. (required)
   pageSize: integer, The maximum number of `WorkerPool`s to return. The service may return fewer than this value. If omitted, the server will use a sensible default.
   pageToken: string, A page token, received from a previous `ListWorkerPools` call. Provide this to retrieve the subsequent page.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/cloudbuild_v1.projects.triggers.html b/docs/dyn/cloudbuild_v1.projects.triggers.html
index 0ae72e4ccd9..14c7e600afd 100644
--- a/docs/dyn/cloudbuild_v1.projects.triggers.html
+++ b/docs/dyn/cloudbuild_v1.projects.triggers.html
@@ -78,7 +78,7 @@ 

Instance Methods

close()

Close httplib2 connections.

- create(projectId, body=None, parent=None, x__xgafv=None)

+ create(projectId, body, parent=None, x__xgafv=None)

Creates a new `BuildTrigger`. This API is experimental.

delete(projectId, triggerId, name=None, x__xgafv=None)

@@ -93,7 +93,7 @@

Instance Methods

list_next(previous_request, previous_response)

Retrieves the next page of results.

- patch(projectId, triggerId, body=None, x__xgafv=None)

+ patch(projectId, triggerId, body, x__xgafv=None)

Updates a `BuildTrigger` by its project ID and trigger ID. This API is experimental.

run(projectId, triggerId, body=None, name=None, x__xgafv=None)

@@ -108,7 +108,7 @@

Method Details

- create(projectId, body=None, parent=None, x__xgafv=None) + create(projectId, body, parent=None, x__xgafv=None)
Creates a new `BuildTrigger`. This API is experimental.
 
 Args:
@@ -152,6 +152,10 @@ 

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -375,6 +379,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -444,6 +453,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -667,6 +680,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -764,6 +782,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -987,6 +1009,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -1068,6 +1095,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -1291,6 +1322,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -1333,7 +1369,7 @@

Method Details

- patch(projectId, triggerId, body=None, x__xgafv=None) + patch(projectId, triggerId, body, x__xgafv=None)
Updates a `BuildTrigger` by its project ID and trigger ID. This API is experimental.
 
 Args:
@@ -1378,6 +1414,10 @@ 

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -1601,6 +1641,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, @@ -1669,6 +1714,10 @@

Method Details

}, "buildTriggerId": "A String", # Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically. "createTime": "A String", # Output only. Time at which the request to create the build was received. + "failureInfo": { # A fatal problem encountered during the execution of the build. # Output only. Contains information about the build when status=FAILURE. + "detail": "A String", # Explains the failure issue in more detail using hard-coded text. + "type": "A String", # The name of the failure. + }, "finishTime": "A String", # Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. "id": "A String", # Output only. Unique identifier of the build. "images": [ # A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`. @@ -1892,6 +1941,11 @@

Method Details

"topic": "A String", # The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`. }, "resourceName": "A String", # The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service. + "sourceToBuild": { # GitRepoSource describes a repo and ref of a code repository. # The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. + "ref": "A String", # The branch or tag to use. Must start with "refs/" (required). + "repoType": "A String", # See RepoType below. + "uri": "A String", # The URI of the repo (required). + }, "substitutions": { # Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`. "a_key": "A String", }, diff --git a/docs/dyn/cloudfunctions_v1.projects.locations.functions.html b/docs/dyn/cloudfunctions_v1.projects.locations.functions.html index 5f0964a7a37..3c7682aeb97 100644 --- a/docs/dyn/cloudfunctions_v1.projects.locations.functions.html +++ b/docs/dyn/cloudfunctions_v1.projects.locations.functions.html @@ -156,7 +156,7 @@

Method Details

body: object, The request body. The object takes the form of: -{ # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. +{ # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. Next tag: 35 "availableMemoryMb": 42, # The amount of memory in MB available for a function. Defaults to 256MB. "buildEnvironmentVariables": { # Build environment variables that shall be available during build time. "a_key": "A String", @@ -192,7 +192,7 @@

Method Details

"secretEnvironmentVariables": [ # Secret environment variables configuration. { # Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. Secret value is not a part of the configuration. Secret values are only fetched when a new clone starts. "key": "A String", # Name of the environment variable. - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "version": "A String", # Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start. }, @@ -200,7 +200,7 @@

Method Details

"secretVolumes": [ # Secret volumes configuration. { # Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. Secret value is not a part of the configuration. Every filesystem read operation performs a lookup in secret manager to retrieve the secret value. "mountPath": "A String", # The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: /etc/secrets Restricted mount paths: /cloudsql, /dev/log, /pod, /proc, /var/log - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "versions": [ # List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. { # Configuration for a single version. @@ -355,7 +355,7 @@

Method Details

Returns: An object of the form: - { # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. + { # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. Next tag: 35 "availableMemoryMb": 42, # The amount of memory in MB available for a function. Defaults to 256MB. "buildEnvironmentVariables": { # Build environment variables that shall be available during build time. "a_key": "A String", @@ -391,7 +391,7 @@

Method Details

"secretEnvironmentVariables": [ # Secret environment variables configuration. { # Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. Secret value is not a part of the configuration. Secret values are only fetched when a new clone starts. "key": "A String", # Name of the environment variable. - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "version": "A String", # Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start. }, @@ -399,7 +399,7 @@

Method Details

"secretVolumes": [ # Secret volumes configuration. { # Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. Secret value is not a part of the configuration. Every filesystem read operation performs a lookup in secret manager to retrieve the secret value. "mountPath": "A String", # The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: /etc/secrets Restricted mount paths: /cloudsql, /dev/log, /pod, /proc, /var/log - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "versions": [ # List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. { # Configuration for a single version. @@ -492,7 +492,7 @@

Method Details

{ # Response for the `ListFunctions` method. "functions": [ # The functions that match the request. - { # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. + { # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. Next tag: 35 "availableMemoryMb": 42, # The amount of memory in MB available for a function. Defaults to 256MB. "buildEnvironmentVariables": { # Build environment variables that shall be available during build time. "a_key": "A String", @@ -528,7 +528,7 @@

Method Details

"secretEnvironmentVariables": [ # Secret environment variables configuration. { # Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. Secret value is not a part of the configuration. Secret values are only fetched when a new clone starts. "key": "A String", # Name of the environment variable. - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "version": "A String", # Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start. }, @@ -536,7 +536,7 @@

Method Details

"secretVolumes": [ # Secret volumes configuration. { # Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. Secret value is not a part of the configuration. Every filesystem read operation performs a lookup in secret manager to retrieve the secret value. "mountPath": "A String", # The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: /etc/secrets Restricted mount paths: /cloudsql, /dev/log, /pod, /proc, /var/log - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "versions": [ # List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. { # Configuration for a single version. @@ -592,7 +592,7 @@

Method Details

body: object, The request body. The object takes the form of: -{ # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. +{ # Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. Next tag: 35 "availableMemoryMb": 42, # The amount of memory in MB available for a function. Defaults to 256MB. "buildEnvironmentVariables": { # Build environment variables that shall be available during build time. "a_key": "A String", @@ -628,7 +628,7 @@

Method Details

"secretEnvironmentVariables": [ # Secret environment variables configuration. { # Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. Secret value is not a part of the configuration. Secret values are only fetched when a new clone starts. "key": "A String", # Name of the environment variable. - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "version": "A String", # Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start. }, @@ -636,7 +636,7 @@

Method Details

"secretVolumes": [ # Secret volumes configuration. { # Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. Secret value is not a part of the configuration. Every filesystem read operation performs a lookup in secret manager to retrieve the secret value. "mountPath": "A String", # The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: /etc/secrets Restricted mount paths: /cloudsql, /dev/log, /pod, /proc, /var/log - "projectId": "A String", # Project whose secret manager data is being referenced. Cross project secrets are not supported. + "projectId": "A String", # Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. "secret": "A String", # Name of the secret in secret manager (not the full resource name). "versions": [ # List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point. { # Configuration for a single version. diff --git a/docs/dyn/content_v2_1.accounts.html b/docs/dyn/content_v2_1.accounts.html index 86b8370ffe6..cee61c6b43e 100644 --- a/docs/dyn/content_v2_1.accounts.html +++ b/docs/dyn/content_v2_1.accounts.html @@ -125,12 +125,18 @@

Instance Methods

listlinks_next(previous_request, previous_response)

Retrieves the next page of results.

+

+ requestphoneverification(merchantId, accountId, body=None, x__xgafv=None)

+

Request verification code to start phone verification.

update(merchantId, accountId, body=None, x__xgafv=None)

Updates a Merchant Center account. Any fields that are not provided are deleted from the resource.

updatelabels(merchantId, accountId, body=None, x__xgafv=None)

Updates labels that are assigned to the Merchant Center account by CSS user.

+

+ verifyphonenumber(merchantId, accountId, body=None, x__xgafv=None)

+

Validates verification code to verify phone number for the account.

Method Details

authinfo(x__xgafv=None) @@ -771,6 +777,36 @@

Method Details

+
+ requestphoneverification(merchantId, accountId, body=None, x__xgafv=None) +
Request verification code to start phone verification.
+
+Args:
+  merchantId: string, Required. The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account. (required)
+  accountId: string, Required. The ID of the account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the RequestPhoneVerification method.
+  "languageCode": "A String", # Language code [IETF BCP 47 syntax](https://tools.ietf.org/html/bcp47) (for example, en-US). Language code is used to provide localized `SMS` and `PHONE_CALL`. Default language used is en-US if not provided.
+  "phoneNumber": "A String", # Phone number to be verified.
+  "phoneRegionCode": "A String", # Required. Two letter country code for the phone number, for example `CA` for Canadian numbers. See the [ISO 3166-1 alpha-2](https://wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) officially assigned codes.
+  "phoneVerificationMethod": "A String", # Verification method to receive verification code.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the RequestPhoneVerification method.
+  "verificationId": "A String", # The verification ID to use in subsequent calls to `verifyphonenumber`.
+}
+
+
update(merchantId, accountId, body=None, x__xgafv=None)
Updates a Merchant Center account. Any fields that are not provided are deleted from the resource.
@@ -935,4 +971,33 @@ 

Method Details

}
+
+ verifyphonenumber(merchantId, accountId, body=None, x__xgafv=None) +
Validates verification code to verify phone number for the account.
+
+Args:
+  merchantId: string, Required. The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account. (required)
+  accountId: string, Required. The ID of the account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the VerifyPhoneNumber method.
+  "phoneVerificationMethod": "A String", # Verification method used to receive verification code.
+  "verificationCode": "A String", # The verification code that was sent to the phone number for validation.
+  "verificationId": "A String", # The verification ID returned by `requestphoneverification`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the VerifyPhoneNumber method.
+  "verifiedPhoneNumber": "A String", # Verified phone number if verification is successful.
+}
+
+ \ No newline at end of file diff --git a/docs/dyn/content_v2_1.freelistingsprogram.html b/docs/dyn/content_v2_1.freelistingsprogram.html new file mode 100644 index 00000000000..48fe4d627ec --- /dev/null +++ b/docs/dyn/content_v2_1.freelistingsprogram.html @@ -0,0 +1,146 @@ + + + +

Content API for Shopping . freelistingsprogram

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ get(merchantId, x__xgafv=None)

+

Retrieves the status and review eligibility for the free listing program.

+

+ requestreview(merchantId, body=None, x__xgafv=None)

+

Requests a review for Free Listings program in the provided region. Important: This method is only whitelisted for selected merchants.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ get(merchantId, x__xgafv=None) +
Retrieves the status and review eligibility for the free listing program.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for GetFreeListingsProgramStatus.
+  "regionStatuses": [ # Status of the program in each region. Regions with the same status and review eligibility are grouped together in `regionCodes`.
+    { # Status of program and region.
+      "disapprovalDate": "A String", # Date by which `eligibility_status` will go from `WARNING` to `DISAPPROVED`. It will be present when `eligibility_status` is `WARNING`. Date will be provided in ISO 8601 format i.e. YYYY-MM-DD
+      "eligibilityStatus": "A String", # Eligibility status of the standard free listing program.
+      "enhancedEligibilityStatus": "A String", # Eligibility status of the enhanced free listing program.
+      "ineligibilityReason": "A String", # Reason if a program in a given country is not eligible for review. Populated only if `review_eligibility_status` is `INELIGIBLE`.
+      "regionCodes": [ # The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes for all the regions with the same `eligibilityStatus` and `reviewEligibility`.
+        "A String",
+      ],
+      "reviewEligibilityStatus": "A String", # If a program in a given country is eligible for review. It will be present only if eligibility status is `DISAPPROVED`.
+      "reviewIssues": [ # These issues will be evaluated in review process. Fix all the issues before requesting the review.
+        "A String",
+      ],
+    },
+  ],
+  "state": "A String", # If program is successfully onboarded for at least one region.
+}
+
+ +
+ requestreview(merchantId, body=None, x__xgafv=None) +
Requests a review for Free Listings program in the provided region. Important: This method is only whitelisted for selected merchants.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the RequestReviewFreeListings Program method.
+  "regionCode": "A String", # The code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country for which review is to be requested.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+
+ + \ No newline at end of file diff --git a/docs/dyn/content_v2_1.html b/docs/dyn/content_v2_1.html index 231fb1c6c79..82c9b4fb000 100644 --- a/docs/dyn/content_v2_1.html +++ b/docs/dyn/content_v2_1.html @@ -119,6 +119,11 @@

Instance Methods

Returns the datafeedstatuses Resource.

+

+ freelistingsprogram() +

+

Returns the freelistingsprogram Resource.

+

liasettings()

@@ -224,6 +229,11 @@

Instance Methods

Returns the shippingsettings Resource.

+

+ shoppingadsprogram() +

+

Returns the shoppingadsprogram Resource.

+

close()

Close httplib2 connections.

diff --git a/docs/dyn/content_v2_1.reports.html b/docs/dyn/content_v2_1.reports.html index 769ad219533..81c4f67b78e 100644 --- a/docs/dyn/content_v2_1.reports.html +++ b/docs/dyn/content_v2_1.reports.html @@ -101,7 +101,7 @@

Method Details

{ # Request message for the ReportService.Search method. "pageSize": 42, # Number of ReportRows to retrieve in a single page. Defaults to the maximum of 1000. Values above 1000 are coerced to 1000. "pageToken": "A String", # Token of the page to retrieve. If not specified, the first page of results is returned. In order to request the next page of results, the value obtained from `next_page_token` in the previous response should be used. - "query": "A String", # Required. Query that defines performance metrics to retrieve and dimensions according to which the metrics are to be segmented. + "query": "A String", # Required. Query that defines performance metrics to retrieve and dimensions according to which the metrics are to be segmented. For details on how to construct your query, see the [Query Language guide](https://developers.google.com/shopping-content/guides/reports/query-language/overview). } x__xgafv: string, V1 error format. @@ -140,11 +140,11 @@

Method Details

}, "segments": { # Dimensions according to which metrics are segmented in the response. Values of product dimensions, e.g., offer id, reflect the state of a product at the time of the corresponding event, e.g., impression or order. Segment fields cannot be selected in queries without also selecting at least one metric field. Values are only set for dimensions requested explicitly in the request's search query. # Segmentation dimensions requested by the merchant in the query. Dimension values are only set for dimensions requested explicitly in the query. "brand": "A String", # Brand of the product. - "categoryL1": "A String", # Product category (1st level) in Google's product taxonomy. - "categoryL2": "A String", # Product category (2nd level) in Google's product taxonomy. - "categoryL3": "A String", # Product category (3rd level) in Google's product taxonomy. - "categoryL4": "A String", # Product category (4th level) in Google's product taxonomy. - "categoryL5": "A String", # Product category (5th level) in Google's product taxonomy. + "categoryL1": "A String", # [Product category (1st level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy. + "categoryL2": "A String", # [Product category (2nd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy. + "categoryL3": "A String", # [Product category (3rd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy. + "categoryL4": "A String", # [Product category (4th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy. + "categoryL5": "A String", # [Product category (5th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy. "currencyCode": "A String", # Currency in which price metrics are represented, e.g., if you select `ordered_item_sales_micros`, the returned value will be represented by this currency. "customLabel0": "A String", # Custom label 0 for custom grouping of products. "customLabel1": "A String", # Custom label 1 for custom grouping of products. @@ -157,11 +157,11 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "offerId": "A String", # Merchant-provided id of the product. - "productTypeL1": "A String", # Product category (1st level) in merchant's own product taxonomy. - "productTypeL2": "A String", # Product category (2nd level) in merchant's own product taxonomy. - "productTypeL3": "A String", # Product category (3rd level) in merchant's own product taxonomy. - "productTypeL4": "A String", # Product category (4th level) in merchant's own product taxonomy. - "productTypeL5": "A String", # Product category (5th level) in merchant's own product taxonomy. + "productTypeL1": "A String", # [Product type (1st level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy. + "productTypeL2": "A String", # [Product type (2nd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy. + "productTypeL3": "A String", # [Product type (3rd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy. + "productTypeL4": "A String", # [Product type (4th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy. + "productTypeL5": "A String", # [Product type (5th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy. "program": "A String", # Program to which metrics apply, e.g., Free Product Listing. "title": "A String", # Title of the product. "week": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # First day of the week (Monday) of the metrics date in the merchant timezone. diff --git a/docs/dyn/content_v2_1.shoppingadsprogram.html b/docs/dyn/content_v2_1.shoppingadsprogram.html new file mode 100644 index 00000000000..4d7eb622eac --- /dev/null +++ b/docs/dyn/content_v2_1.shoppingadsprogram.html @@ -0,0 +1,145 @@ + + + +

Content API for Shopping . shoppingadsprogram

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ get(merchantId, x__xgafv=None)

+

Retrieves the status and review eligibility for the Shopping Ads program.

+

+ requestreview(merchantId, body=None, x__xgafv=None)

+

Requests a review for Shopping Ads program in the provided country.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ get(merchantId, x__xgafv=None) +
Retrieves the status and review eligibility for the Shopping Ads program.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for GetShoppingAdsProgramStatus.
+  "regionStatuses": [ # Status of the program in each region. Regions with the same status and review eligibility are grouped together in `regionCodes`.
+    { # Status of program and region.
+      "disapprovalDate": "A String", # Date by which `eligibility_status` will go from `WARNING` to `DISAPPROVED`. It will be present when `eligibility_status` is `WARNING`. Date will be provided in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format i.e. YYYY-MM-DD
+      "eligibilityStatus": "A String", # Eligibility status of the Shopping Ads program.
+      "ineligibilityReason": "A String", # Reason if a program in a given country is not eligible for review. Populated only if `review_eligibility_status` is `INELIGIBLE`.
+      "regionCodes": [ # The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes for all the regions with the same `eligibilityStatus` and `reviewEligibility`.
+        "A String",
+      ],
+      "reviewEligibilityStatus": "A String", # If a program in a given country is eligible for review. It will be present only if eligibility status is `DISAPPROVED`.
+      "reviewIssues": [ # These issues will be evaluated in review process. Fix all the issues before requesting the review.
+        "A String",
+      ],
+    },
+  ],
+  "state": "A String", # If program is successfully onboarded for at least one region.
+}
+
+ +
+ requestreview(merchantId, body=None, x__xgafv=None) +
Requests a review for Shopping Ads program in the provided country.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the RequestReviewShoppingAds program method.
+  "regionCode": "A String", # The code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country for which review is to be requested.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+
+ + \ No newline at end of file diff --git a/docs/dyn/datastore_v1.projects.html b/docs/dyn/datastore_v1.projects.html index 4f71a3fd441..96acf9cb890 100644 --- a/docs/dyn/datastore_v1.projects.html +++ b/docs/dyn/datastore_v1.projects.html @@ -248,7 +248,40 @@

Method Details

], }, "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value + "a_key": { # A message that can hold any of the supported value types and associated metadata. + "arrayValue": { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`. + "values": [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'. + # Object with schema name: Value + ], + }, + "blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. + "booleanValue": True or False, # A boolean value. + "doubleValue": 3.14, # A double value. + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. + "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "keyValue": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value. + "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. + "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. + "projectId": "A String", # The ID of the project to which the entities belong. + }, + "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. + { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. + "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. + "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + }, + ], + }, + "meaning": 42, # The `meaning` field should only be populated for backwards compatibility. + "nullValue": "A String", # A null value. + "stringValue": "A String", # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + "timestampValue": "A String", # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down. + }, }, }, "update": { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to update. The entity must already exist. Must have a complete key path. @@ -266,7 +299,40 @@

Method Details

], }, "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value + "a_key": { # A message that can hold any of the supported value types and associated metadata. + "arrayValue": { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`. + "values": [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'. + # Object with schema name: Value + ], + }, + "blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. + "booleanValue": True or False, # A boolean value. + "doubleValue": 3.14, # A double value. + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. + "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "keyValue": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value. + "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. + "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. + "projectId": "A String", # The ID of the project to which the entities belong. + }, + "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. + { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. + "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. + "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + }, + ], + }, + "meaning": 42, # The `meaning` field should only be populated for backwards compatibility. + "nullValue": "A String", # A null value. + "stringValue": "A String", # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + "timestampValue": "A String", # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down. + }, }, }, "upsert": { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to upsert. The entity may or may not already exist. The entity key's final path element may be incomplete. @@ -284,7 +350,40 @@

Method Details

], }, "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value + "a_key": { # A message that can hold any of the supported value types and associated metadata. + "arrayValue": { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`. + "values": [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'. + # Object with schema name: Value + ], + }, + "blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. + "booleanValue": True or False, # A boolean value. + "doubleValue": 3.14, # A double value. + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. + "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "keyValue": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value. + "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. + "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. + "projectId": "A String", # The ID of the project to which the entities belong. + }, + "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. + { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. + "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. + "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + }, + ], + }, + "meaning": 42, # The `meaning` field should only be populated for backwards compatibility. + "nullValue": "A String", # A null value. + "stringValue": "A String", # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + "timestampValue": "A String", # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down. + }, }, }, }, @@ -503,7 +602,40 @@

Method Details

], }, "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value + "a_key": { # A message that can hold any of the supported value types and associated metadata. + "arrayValue": { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`. + "values": [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'. + # Object with schema name: Value + ], + }, + "blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. + "booleanValue": True or False, # A boolean value. + "doubleValue": 3.14, # A double value. + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. + "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "keyValue": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value. + "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. + "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. + "projectId": "A String", # The ID of the project to which the entities belong. + }, + "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. + { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. + "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. + "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + }, + ], + }, + "meaning": 42, # The `meaning` field should only be populated for backwards compatibility. + "nullValue": "A String", # A null value. + "stringValue": "A String", # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + "timestampValue": "A String", # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down. + }, }, }, "version": "A String", # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads. @@ -527,7 +659,40 @@

Method Details

], }, "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value + "a_key": { # A message that can hold any of the supported value types and associated metadata. + "arrayValue": { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`. + "values": [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'. + # Object with schema name: Value + ], + }, + "blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. + "booleanValue": True or False, # A boolean value. + "doubleValue": 3.14, # A double value. + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. + "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "keyValue": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value. + "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. + "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. + "projectId": "A String", # The ID of the project to which the entities belong. + }, + "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. + { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. + "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. + "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + }, + ], + }, + "meaning": 42, # The `meaning` field should only be populated for backwards compatibility. + "nullValue": "A String", # A null value. + "stringValue": "A String", # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + "timestampValue": "A String", # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down. + }, }, }, "version": "A String", # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads. @@ -625,24 +790,7 @@

Method Details

"blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. "booleanValue": True or False, # A boolean value. "doubleValue": 3.14, # A double value. - "entityValue": { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. - "key": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity's key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity's kind is its key path's last element's kind, or null if it has no key. - "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. - "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. - "projectId": "A String", # The ID of the project to which the entities belong. - }, - "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. - { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. - "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. - "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - }, - ], - }, - "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value - }, - }, + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. @@ -681,24 +829,7 @@

Method Details

"blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. "booleanValue": True or False, # A boolean value. "doubleValue": 3.14, # A double value. - "entityValue": { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. - "key": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity's key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity's kind is its key path's last element's kind, or null if it has no key. - "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. - "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. - "projectId": "A String", # The ID of the project to which the entities belong. - }, - "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. - { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. - "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. - "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - }, - ], - }, - "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value - }, - }, + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. @@ -759,24 +890,7 @@

Method Details

"blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. "booleanValue": True or False, # A boolean value. "doubleValue": 3.14, # A double value. - "entityValue": { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. - "key": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity's key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity's kind is its key path's last element's kind, or null if it has no key. - "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. - "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. - "projectId": "A String", # The ID of the project to which the entities belong. - }, - "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. - { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. - "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. - "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - }, - ], - }, - "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value - }, - }, + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. @@ -863,7 +977,40 @@

Method Details

], }, "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value + "a_key": { # A message that can hold any of the supported value types and associated metadata. + "arrayValue": { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`. + "values": [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for 'exclude_from_indexes'. + # Object with schema name: Value + ], + }, + "blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. + "booleanValue": True or False, # A boolean value. + "doubleValue": 3.14, # A double value. + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. + "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "keyValue": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value. + "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. + "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. + "projectId": "A String", # The ID of the project to which the entities belong. + }, + "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. + { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. + "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. + "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. + }, + ], + }, + "meaning": 42, # The `meaning` field should only be populated for backwards compatibility. + "nullValue": "A String", # A null value. + "stringValue": "A String", # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes. + "timestampValue": "A String", # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down. + }, }, }, "version": "A String", # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads. @@ -902,24 +1049,7 @@

Method Details

"blobValue": "A String", # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded. "booleanValue": True or False, # A boolean value. "doubleValue": 3.14, # A double value. - "entityValue": { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. - "key": { # A unique identifier for an entity. If a key's partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity's key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity's kind is its key path's last element's kind, or null if it has no key. - "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `""`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition. - "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. - "projectId": "A String", # The ID of the project to which the entities belong. - }, - "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's _ancestors_. An entity path is always fully complete: *all* of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements. - { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete. - "id": "A String", # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future. - "kind": "A String", # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - "name": "A String", # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. - }, - ], - }, - "properties": { # The entity's properties. The map's keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `""`. - "a_key": # Object with schema name: Value - }, - }, + "entityValue": # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key. "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined explicitly. "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. diff --git a/docs/dyn/displayvideo_v1.advertisers.campaigns.html b/docs/dyn/displayvideo_v1.advertisers.campaigns.html index 404913e479a..50adcd966fb 100644 --- a/docs/dyn/displayvideo_v1.advertisers.campaigns.html +++ b/docs/dyn/displayvideo_v1.advertisers.campaigns.html @@ -202,6 +202,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -290,6 +296,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -304,6 +314,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html index 9a97a8612ba..78e7e9cc0c5 100644 --- a/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html +++ b/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html @@ -139,7 +139,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. An identifier unique to the targeting type in this campaign that identifies the assigned targeting option being requested. (required) x__xgafv: string, V1 error format. Allowed values @@ -223,6 +226,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -311,6 +320,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -325,6 +338,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -464,7 +485,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"` The length of this field should be no more than 500 characters. orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix "desc" should be added to the field name. Example: `assignedTargetingOptionId desc`. pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified. @@ -553,6 +577,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -641,6 +671,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -655,6 +689,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.html b/docs/dyn/displayvideo_v1.advertisers.html index f1a684733d5..7008b733118 100644 --- a/docs/dyn/displayvideo_v1.advertisers.html +++ b/docs/dyn/displayvideo_v1.advertisers.html @@ -200,7 +200,7 @@

Method Details

The object takes the form of: { # Request message for BulkEditAdvertiserAssignedTargetingOptions. - "createRequests": [ # The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` + "createRequests": [ # The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` { # A request listing which assigned targeting options of a given targeting type should be created and added. "assignedTargetingOptions": [ # Required. The assigned targeting options to create and add. { # A single assigned targeting option, which defines the state of a targeting option for an entity with targeting settings. @@ -277,6 +277,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -365,6 +371,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -379,6 +389,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -473,7 +491,7 @@

Method Details

"targetingType": "A String", # Required. Identifies the type of this assigned targeting option. }, ], - "deleteRequests": [ # The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` + "deleteRequests": [ # The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` { # A request listing which assigned targeting options of a given targeting type should be deleted. "assignedTargetingOptionIds": [ # Required. The assigned targeting option IDs to delete. "A String", @@ -567,6 +585,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -655,6 +679,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -669,6 +697,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -857,6 +893,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -945,6 +987,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -959,6 +1005,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.insertionOrders.html b/docs/dyn/displayvideo_v1.advertisers.insertionOrders.html index eff5006ad1a..ffdefa55b72 100644 --- a/docs/dyn/displayvideo_v1.advertisers.insertionOrders.html +++ b/docs/dyn/displayvideo_v1.advertisers.insertionOrders.html @@ -202,6 +202,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -290,6 +296,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -304,6 +314,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html index 5b1ce80abdd..36cd5918eff 100644 --- a/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html +++ b/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html @@ -139,7 +139,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. An identifier unique to the targeting type in this insertion order that identifies the assigned targeting option being requested. (required) x__xgafv: string, V1 error format. Allowed values @@ -223,6 +226,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -311,6 +320,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -325,6 +338,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -464,7 +485,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"` The length of this field should be no more than 500 characters. orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix "desc" should be added to the field name. Example: `assignedTargetingOptionId desc`. pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified. @@ -553,6 +577,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -641,6 +671,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -655,6 +689,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.lineItems.html b/docs/dyn/displayvideo_v1.advertisers.lineItems.html index 6ffb254e464..06b3e041168 100644 --- a/docs/dyn/displayvideo_v1.advertisers.lineItems.html +++ b/docs/dyn/displayvideo_v1.advertisers.lineItems.html @@ -201,6 +201,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -289,6 +295,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -303,6 +313,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -491,6 +509,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -579,6 +603,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -593,6 +621,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -782,6 +818,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -870,6 +912,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -884,6 +930,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html index 0b5365d7ffa..4ca9a6a89e4 100644 --- a/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html +++ b/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html @@ -145,7 +145,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. body: object, The request body. The object takes the form of: @@ -223,6 +226,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -311,6 +320,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -325,6 +338,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -498,6 +519,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -586,6 +613,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -600,6 +631,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -739,7 +778,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. The ID of the assigned targeting option to delete. (required) x__xgafv: string, V1 error format. Allowed values @@ -800,7 +842,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested. (required) x__xgafv: string, V1 error format. Allowed values @@ -884,6 +929,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -972,6 +1023,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -986,6 +1041,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -1125,7 +1188,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"` The length of this field should be no more than 500 characters. orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix "desc" should be added to the field name. Example: `assignedTargetingOptionId desc`. pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified. @@ -1214,6 +1280,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -1302,6 +1374,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -1316,6 +1392,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html index 2815d6f7bf9..dfdc90c91db 100644 --- a/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html +++ b/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html @@ -104,7 +104,7 @@

Method Details

Args: advertiserId: string, Required. The ID of the advertiser. (required) - targetingType: string, Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) + targetingType: string, Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) Allowed values TARGETING_TYPE_UNSPECIFIED - Default value when type is not specified or is unknown in this version. TARGETING_TYPE_CHANNEL - Target a channel (a custom group of related websites or apps). @@ -144,7 +144,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. body: object, The request body. The object takes the form of: @@ -222,6 +225,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -310,6 +319,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -324,6 +337,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -497,6 +518,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -585,6 +612,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -599,6 +630,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -697,7 +736,7 @@

Method Details

Args: advertiserId: string, Required. The ID of the advertiser. (required) - targetingType: string, Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) + targetingType: string, Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) Allowed values TARGETING_TYPE_UNSPECIFIED - Default value when type is not specified or is unknown in this version. TARGETING_TYPE_CHANNEL - Target a channel (a custom group of related websites or apps). @@ -737,7 +776,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. The ID of the assigned targeting option to delete. (required) x__xgafv: string, V1 error format. Allowed values @@ -757,7 +799,7 @@

Method Details

Args: advertiserId: string, Required. The ID of the advertiser. (required) - targetingType: string, Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) + targetingType: string, Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) Allowed values TARGETING_TYPE_UNSPECIFIED - Default value when type is not specified or is unknown in this version. TARGETING_TYPE_CHANNEL - Target a channel (a custom group of related websites or apps). @@ -797,7 +839,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. An identifier unique to the targeting type in this advertiser that identifies the assigned targeting option being requested. (required) x__xgafv: string, V1 error format. Allowed values @@ -881,6 +926,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -969,6 +1020,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -983,6 +1038,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -1081,7 +1144,7 @@

Method Details

Args: advertiserId: string, Required. The ID of the advertiser. (required) - targetingType: string, Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) + targetingType: string, Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` (required) Allowed values TARGETING_TYPE_UNSPECIFIED - Default value when type is not specified or is unknown in this version. TARGETING_TYPE_CHANNEL - Target a channel (a custom group of related websites or apps). @@ -1121,7 +1184,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId="123456"` The length of this field should be no more than 500 characters. orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix "desc" should be added to the field name. Example: `assignedTargetingOptionId desc`. pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified. @@ -1210,6 +1276,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -1298,6 +1370,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -1312,6 +1388,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.partners.html b/docs/dyn/displayvideo_v1.partners.html index 2d5a65f8ed6..ef3103720f4 100644 --- a/docs/dyn/displayvideo_v1.partners.html +++ b/docs/dyn/displayvideo_v1.partners.html @@ -187,6 +187,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -275,6 +281,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -289,6 +299,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -477,6 +495,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -565,6 +589,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -579,6 +607,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.partners.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.partners.targetingTypes.assignedTargetingOptions.html index 611251f6f09..3bf9819dd32 100644 --- a/docs/dyn/displayvideo_v1.partners.targetingTypes.assignedTargetingOptions.html +++ b/docs/dyn/displayvideo_v1.partners.targetingTypes.assignedTargetingOptions.html @@ -144,7 +144,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. body: object, The request body. The object takes the form of: @@ -222,6 +225,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -310,6 +319,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -324,6 +337,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -497,6 +518,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -585,6 +612,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -599,6 +630,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -737,7 +776,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. The ID of the assigned targeting option to delete. (required) x__xgafv: string, V1 error format. Allowed values @@ -797,7 +839,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. assignedTargetingOptionId: string, Required. An identifier unique to the targeting type in this partner that identifies the assigned targeting option being requested. (required) x__xgafv: string, V1 error format. Allowed values @@ -881,6 +926,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -969,6 +1020,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -983,6 +1038,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. @@ -1121,7 +1184,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId="123456"` The length of this field should be no more than 500 characters. orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix "desc" should be added to the field name. Example: `assignedTargetingOptionId desc`. pageSize: integer, Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified. @@ -1210,6 +1276,12 @@

Method Details

"negative": True or False, # Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`. }, + "businessChainDetails": { # Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "displayName": "A String", # Output only. The display name of a business chain, e.g. "KFC", "Chase Bank". + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. + }, "carrierAndIspDetails": { # Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. "displayName": "A String", # Output only. The display name of the carrier or ISP. "negative": True or False, # Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field. @@ -1298,6 +1370,10 @@

Method Details

"negativeKeywordListDetails": { # Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. # Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource. "negativeKeywordListId": "A String", # Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`. + }, "onScreenPositionDetails": { # On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. "adType": "A String", # Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. "onScreenPosition": "A String", # Output only. The on screen position. @@ -1312,6 +1388,14 @@

Method Details

"parentalStatus": "A String", # Output only. The parental status of the audience. "targetingOptionId": "A String", # Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`. }, + "poiDetails": { # Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`. # POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + "proximityRadiusAmount": 3.14, # Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. + "proximityRadiusUnit": "A String", # Required. The unit of distance by which the targeting radius is measured. + "targetingOptionId": "A String", # Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. + }, "proximityLocationListDetails": { # Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. # Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. "proximityLocationListId": "A String", # Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. "proximityRadiusRange": "A String", # Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource. diff --git a/docs/dyn/displayvideo_v1.targetingTypes.targetingOptions.html b/docs/dyn/displayvideo_v1.targetingTypes.targetingOptions.html index 43b690b671c..b56241bfbdd 100644 --- a/docs/dyn/displayvideo_v1.targetingTypes.targetingOptions.html +++ b/docs/dyn/displayvideo_v1.targetingTypes.targetingOptions.html @@ -143,7 +143,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. targetingOptionId: string, Required. The ID of the of targeting option to retrieve. (required) advertiserId: string, Required. The Advertiser this request is being made in the context of. x__xgafv: string, V1 error format. @@ -167,6 +170,11 @@

Method Details

"browserDetails": { # Represents a targetable browser. This will be populated in the browser_details field when targeting_type is `TARGETING_TYPE_BROWSER`. # Browser details. "displayName": "A String", # Output only. The display name of the browser. }, + "businessChainDetails": { # Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain resource details. + "businessChain": "A String", # Output only. The display name of the business chain, e.g. "KFC", "Chase Bank". + "geoRegion": "A String", # Output only. The display name of the geographic region, e.g. "Ontario, Canada". + "geoRegionType": "A String", # Output only. The type of the geographic region. + }, "carrierAndIspDetails": { # Represents a targetable carrier or ISP. This will be populated in the carrier_and_isp_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. "displayName": "A String", # Output only. The display name of the carrier or ISP. "type": "A String", # Output only. The type indicating if it's carrier or ISP. @@ -212,6 +220,9 @@

Method Details

"nativeContentPositionDetails": { # Represents a targetable native content position. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. # Native content position details. "contentPosition": "A String", # Output only. The content position. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + }, "onScreenPositionDetails": { # Represents a targetable on screen position, which could be used by display and video ads. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. "onScreenPosition": "A String", # Output only. The on screen position. }, @@ -221,6 +232,11 @@

Method Details

"parentalStatusDetails": { # Represents a targetable parental status. This will be populated in the parental_status_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`. # Parental status details. "parentalStatus": "A String", # Output only. The parental status of an audience. }, + "poiDetails": { # Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`. # POI resource details. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + }, "sensitiveCategoryDetails": { # Represents a targetable sensitive category. This will be populated in the sensitive_category_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. # Sensitive Category details. "sensitiveCategory": "A String", # Output only. An enum for the DV360 Sensitive category content classifier. }, @@ -286,7 +302,10 @@

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. advertiserId: string, Required. The Advertiser this request is being made in the context of. filter: string, Allows filtering by targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * The operator must be "=" (equal sign). * Supported fields: - `carrierAndIspDetails.type` - `geoRegionDetails.geoRegionType` - `targetingOptionId` Examples: * All `GEO REGION` targeting options that belong to sub type `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`: `geoRegionDetails.geoRegionType="GEO_REGION_TYPE_COUNTRY" OR geoRegionDetails.geoRegionType="GEO_REGION_TYPE_STATE"` * All `CARRIER AND ISP` targeting options that belong to sub type `CARRIER_AND_ISP_TYPE_CARRIER`: `carrierAndIspDetails.type="CARRIER_AND_ISP_TYPE_CARRIER"`. The length of this field should be no more than 500 characters. orderBy: string, Field by which to sort the list. Acceptable values are: * `targetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix "desc" should be added to the field name. Example: `targetingOptionId desc`. @@ -316,6 +335,11 @@

Method Details

"browserDetails": { # Represents a targetable browser. This will be populated in the browser_details field when targeting_type is `TARGETING_TYPE_BROWSER`. # Browser details. "displayName": "A String", # Output only. The display name of the browser. }, + "businessChainDetails": { # Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain resource details. + "businessChain": "A String", # Output only. The display name of the business chain, e.g. "KFC", "Chase Bank". + "geoRegion": "A String", # Output only. The display name of the geographic region, e.g. "Ontario, Canada". + "geoRegionType": "A String", # Output only. The type of the geographic region. + }, "carrierAndIspDetails": { # Represents a targetable carrier or ISP. This will be populated in the carrier_and_isp_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. "displayName": "A String", # Output only. The display name of the carrier or ISP. "type": "A String", # Output only. The type indicating if it's carrier or ISP. @@ -361,6 +385,9 @@

Method Details

"nativeContentPositionDetails": { # Represents a targetable native content position. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. # Native content position details. "contentPosition": "A String", # Output only. The content position. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + }, "onScreenPositionDetails": { # Represents a targetable on screen position, which could be used by display and video ads. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. "onScreenPosition": "A String", # Output only. The on screen position. }, @@ -370,6 +397,11 @@

Method Details

"parentalStatusDetails": { # Represents a targetable parental status. This will be populated in the parental_status_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`. # Parental status details. "parentalStatus": "A String", # Output only. The parental status of an audience. }, + "poiDetails": { # Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`. # POI resource details. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + }, "sensitiveCategoryDetails": { # Represents a targetable sensitive category. This will be populated in the sensitive_category_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. # Sensitive Category details. "sensitiveCategory": "A String", # Output only. An enum for the DV360 Sensitive category content classifier. }, @@ -411,7 +443,7 @@

Method Details

Searches for targeting options of a given type based on the given search terms.
 
 Args:
-  targetingType: string, Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` (required)
+  targetingType: string, Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_BUSINESS_CHAIN` (required)
     Allowed values
       TARGETING_TYPE_UNSPECIFIED - Default value when type is not specified or is unknown in this version.
       TARGETING_TYPE_CHANNEL - Target a channel (a custom group of related websites or apps).
@@ -451,17 +483,27 @@ 

Method Details

TARGETING_TYPE_INVENTORY_SOURCE_GROUP - Purchase impressions from a group of deals and auction packages. TARGETING_TYPE_EXCHANGE - Purchase impressions from specific exchanges. TARGETING_TYPE_SUB_EXCHANGE - Purchase impressions from specific sub-exchanges. + TARGETING_TYPE_POI - Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates. + TARGETING_TYPE_BUSINESS_CHAIN - Target ads around locations of a business chain within a specific geo region. TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position. + TARGETING_TYPE_OMID - Target ads in an Open Measurement enabled inventory. body: object, The request body. The object takes the form of: { # Request message for SearchTargetingOptions. "advertiserId": "A String", # Required. The Advertiser this request is being made in the context of. + "businessChainSearchTerms": { # Search terms for Business Chain targeting options. At least one of the field should be populated. # Search terms for Business Chain targeting options. Can only be used when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. + "businessChain": "A String", # The search query for the desired business chain. The query can be a prefix, e.g. "KFC", "mercede". + "region": "A String", # The search query for the desired geo region, e.g. "Seattle", "United State". + }, "geoRegionSearchTerms": { # Search terms for geo region targeting options. # Search terms for geo region targeting options. Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`. "geoRegionQuery": "A String", # The search query for the desired geo region. The query can be a prefix, e.g. "New Yor", "Seattle", "USA", etc. }, "pageSize": 42, # Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified. "pageToken": "A String", # A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `SearchTargetingOptions` method. If not specified, the first page of results will be returned. + "poiSearchTerms": { # Search terms for POI targeting options. # Search terms for POI targeting options. Can only be used when targeting_type is `TARGETING_TYPE_POI`. + "poiQuery": "A String", # The search query for the desired POI name, street address, or coordinate of the desired POI. The query can be a prefix, e.g. "Times squar", "40.7505045,-73.99562", "315 W 44th St", etc. + }, } x__xgafv: string, V1 error format. @@ -488,6 +530,11 @@

Method Details

"browserDetails": { # Represents a targetable browser. This will be populated in the browser_details field when targeting_type is `TARGETING_TYPE_BROWSER`. # Browser details. "displayName": "A String", # Output only. The display name of the browser. }, + "businessChainDetails": { # Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. # Business chain resource details. + "businessChain": "A String", # Output only. The display name of the business chain, e.g. "KFC", "Chase Bank". + "geoRegion": "A String", # Output only. The display name of the geographic region, e.g. "Ontario, Canada". + "geoRegionType": "A String", # Output only. The type of the geographic region. + }, "carrierAndIspDetails": { # Represents a targetable carrier or ISP. This will be populated in the carrier_and_isp_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. # Carrier and ISP details. "displayName": "A String", # Output only. The display name of the carrier or ISP. "type": "A String", # Output only. The type indicating if it's carrier or ISP. @@ -533,6 +580,9 @@

Method Details

"nativeContentPositionDetails": { # Represents a targetable native content position. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. # Native content position details. "contentPosition": "A String", # Output only. The content position. }, + "omidDetails": { # Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`. # Open Measurement enabled inventory details. + "omid": "A String", # Output only. The type of Open Measurement enabled inventory. + }, "onScreenPositionDetails": { # Represents a targetable on screen position, which could be used by display and video ads. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. # On screen position details. "onScreenPosition": "A String", # Output only. The on screen position. }, @@ -542,6 +592,11 @@

Method Details

"parentalStatusDetails": { # Represents a targetable parental status. This will be populated in the parental_status_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`. # Parental status details. "parentalStatus": "A String", # Output only. The parental status of an audience. }, + "poiDetails": { # Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`. # POI resource details. + "displayName": "A String", # Output only. The display name of a POI, e.g. "Times Square", "Space Needle". + "latitude": 3.14, # Output only. Latitude of the POI rounding to 6th decimal place. + "longitude": 3.14, # Output only. Longitude of the POI rounding to 6th decimal place. + }, "sensitiveCategoryDetails": { # Represents a targetable sensitive category. This will be populated in the sensitive_category_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. # Sensitive Category details. "sensitiveCategory": "A String", # Output only. An enum for the DV360 Sensitive category content classifier. }, diff --git a/docs/dyn/dns_v1beta2.changes.html b/docs/dyn/dns_v1beta2.changes.html index b64cfd1dec0..088925e8ff1 100644 --- a/docs/dyn/dns_v1beta2.changes.html +++ b/docs/dyn/dns_v1beta2.changes.html @@ -110,6 +110,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -124,6 +211,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -155,6 +329,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -169,6 +430,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -209,6 +557,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -223,6 +658,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -269,6 +791,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -283,6 +892,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], diff --git a/docs/dyn/dns_v1beta2.projects.html b/docs/dyn/dns_v1beta2.projects.html index 3e5ff105cd7..bde90ca907c 100644 --- a/docs/dyn/dns_v1beta2.projects.html +++ b/docs/dyn/dns_v1beta2.projects.html @@ -109,6 +109,7 @@

Method Details

"dnsKeysPerManagedZone": 42, # Maximum allowed number of DnsKeys per ManagedZone. "gkeClustersPerManagedZone": 42, # Maximum allowed number of GKE clusters to which a privately scoped zone can be attached. "gkeClustersPerResponsePolicy": 42, # Maximum allowed number of GKE clusters per response policy. + "itemsPerRoutingPolicy": 42, # Maximum allowed number of items per routing policy. "kind": "dns#quota", "managedZones": 42, # Maximum allowed number of managed zones in the project. "managedZonesPerGkeCluster": 42, # Maximum allowed number of managed zones which can be attached to a GKE cluster. diff --git a/docs/dyn/dns_v1beta2.resourceRecordSets.html b/docs/dyn/dns_v1beta2.resourceRecordSets.html index 3467c6a4be1..c6e3d509d4a 100644 --- a/docs/dyn/dns_v1beta2.resourceRecordSets.html +++ b/docs/dyn/dns_v1beta2.resourceRecordSets.html @@ -114,6 +114,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -136,6 +223,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -185,6 +359,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -225,6 +486,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -267,6 +615,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -289,6 +724,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], diff --git a/docs/dyn/dns_v1beta2.responsePolicyRules.html b/docs/dyn/dns_v1beta2.responsePolicyRules.html index 5b745512b3b..2b10b9d485d 100644 --- a/docs/dyn/dns_v1beta2.responsePolicyRules.html +++ b/docs/dyn/dns_v1beta2.responsePolicyRules.html @@ -123,6 +123,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -155,6 +242,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -212,6 +386,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -259,6 +520,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -310,6 +658,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -346,6 +781,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -382,6 +904,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], @@ -418,6 +1027,93 @@

Method Details

{ # A unit of data that is returned by the DNS servers. "kind": "dns#resourceRecordSet", "name": "A String", # For example, www.example.com. + "routingPolicy": { # A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection. # Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise. + "geo": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "geoPolicy": { + "failovers": [ # If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "items": [ # The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead. + { + "kind": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "location": "A String", # The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. "us-east1", "southamerica-east1", "asia-east1", etc. + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above geo_rrdata. + "A String", + ], + }, + ], + "kind": "dns#rRSetRoutingPolicyGeoPolicy", + }, + "kind": "dns#rRSetRoutingPolicy", + "wrr": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + "wrrPolicy": { + "items": [ + { + "kind": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "rrdatas": [ + "A String", + ], + "signatureRrdatas": [ # DNSSEC generated signatures for the above wrr_rrdata. + "A String", + ], + "weight": 3.14, # The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative. + }, + ], + "kind": "dns#rRSetRoutingPolicyWrrPolicy", + }, + }, "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples. "A String", ], diff --git a/docs/dyn/eventarc_v1.projects.locations.channels.html b/docs/dyn/eventarc_v1.projects.locations.channels.html new file mode 100644 index 00000000000..5c1f77c7232 --- /dev/null +++ b/docs/dyn/eventarc_v1.projects.locations.channels.html @@ -0,0 +1,258 @@ + + + +

Eventarc API . projects . locations . channels

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)

+

Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

+

+ setIamPolicy(resource, body=None, x__xgafv=None)

+

Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.

+

+ testIamPermissions(resource, body=None, x__xgafv=None)

+

Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None) +
Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            "A String",
+          ],
+          "logType": "A String", # The log type that this config enables.
+        },
+      ],
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  "bindings": [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      "condition": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
+        "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "A String",
+      ],
+      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  "version": 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}
+
+ +
+ setIamPolicy(resource, body=None, x__xgafv=None) +
Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  "policy": { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "bindings": [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        "condition": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
+          "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    "version": 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: "bindings, etag"`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            "A String",
+          ],
+          "logType": "A String", # The log type that this config enables.
+        },
+      ],
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  "bindings": [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      "condition": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
+        "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "A String",
+      ],
+      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  "version": 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}
+
+ +
+ testIamPermissions(resource, body=None, x__xgafv=None) +
Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  "permissions": [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    "A String",
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    "A String",
+  ],
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/eventarc_v1.projects.locations.html b/docs/dyn/eventarc_v1.projects.locations.html index 2566e2002f4..0682b9fd21a 100644 --- a/docs/dyn/eventarc_v1.projects.locations.html +++ b/docs/dyn/eventarc_v1.projects.locations.html @@ -74,6 +74,11 @@

Eventarc API . projects . locations

Instance Methods

+

+ channels() +

+

Returns the channels Resource.

+

operations()

diff --git a/docs/dyn/file_v1beta1.projects.locations.instances.html b/docs/dyn/file_v1beta1.projects.locations.instances.html index 5d40ef3779e..ff2a367ac30 100644 --- a/docs/dyn/file_v1beta1.projects.locations.instances.html +++ b/docs/dyn/file_v1beta1.projects.locations.instances.html @@ -74,6 +74,11 @@

Cloud Filestore API . projects . locations . instances

Instance Methods

+

+ snapshots() +

+

Returns the snapshots Resource.

+

close()

Close httplib2 connections.

@@ -149,7 +154,7 @@

Method Details

"A String", ], "network": "A String", # The name of the Google Compute Engine [VPC network](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. - "reservedIpRange": "A String", # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. + "reservedIpRange": "A String", # Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Named Address Range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. For both cases, the range value (direct CIDR value or the range value with which the named range was created) must be a /29 CIDR block for Basic tier or a /23 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. }, ], "satisfiesPzs": True or False, # Output only. Reserved for future use. @@ -273,7 +278,7 @@

Method Details

"A String", ], "network": "A String", # The name of the Google Compute Engine [VPC network](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. - "reservedIpRange": "A String", # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. + "reservedIpRange": "A String", # Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Named Address Range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. For both cases, the range value (direct CIDR value or the range value with which the named range was created) must be a /29 CIDR block for Basic tier or a /23 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. }, ], "satisfiesPzs": True or False, # Output only. Reserved for future use. @@ -339,7 +344,7 @@

Method Details

"A String", ], "network": "A String", # The name of the Google Compute Engine [VPC network](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. - "reservedIpRange": "A String", # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. + "reservedIpRange": "A String", # Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Named Address Range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. For both cases, the range value (direct CIDR value or the range value with which the named range was created) must be a /29 CIDR block for Basic tier or a /23 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. }, ], "satisfiesPzs": True or False, # Output only. Reserved for future use. @@ -414,7 +419,7 @@

Method Details

"A String", ], "network": "A String", # The name of the Google Compute Engine [VPC network](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. - "reservedIpRange": "A String", # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. + "reservedIpRange": "A String", # Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Named Address Range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. For both cases, the range value (direct CIDR value or the range value with which the named range was created) must be a /29 CIDR block for Basic tier or a /23 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network. }, ], "satisfiesPzs": True or False, # Output only. Reserved for future use. diff --git a/docs/dyn/file_v1beta1.projects.locations.instances.snapshots.html b/docs/dyn/file_v1beta1.projects.locations.instances.snapshots.html new file mode 100644 index 00000000000..9d0459fcbce --- /dev/null +++ b/docs/dyn/file_v1beta1.projects.locations.instances.snapshots.html @@ -0,0 +1,314 @@ + + + +

Cloud Filestore API . projects . locations . instances . snapshots

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ create(parent, body=None, snapshotId=None, x__xgafv=None)

+

Creates a snapshot.

+

+ delete(name, x__xgafv=None)

+

Deletes a snapshot.

+

+ get(name, x__xgafv=None)

+

Gets the details of a specific snapshot.

+

+ list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)

+

Lists all snapshots in a project for either a specified location or for all locations.

+

+ list_next(previous_request, previous_response)

+

Retrieves the next page of results.

+

+ patch(name, body=None, updateMask=None, x__xgafv=None)

+

Updates the settings of a specific snapshot.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ create(parent, body=None, snapshotId=None, x__xgafv=None) +
Creates a snapshot.
+
+Args:
+  parent: string, Required. The Filestore Instance to create the snapshots of, in the format projects/{project_id}/locations/{location}/instances/{instance_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud Filestore snapshot.
+  "createTime": "A String", # Output only. The time when the snapshot was created.
+  "description": "A String", # A description of the snapshot with 2048 characters or less. Requests with longer descriptions will be rejected.
+  "filesystemUsedBytes": "A String", # Output only. The amount of bytes needed to allocate a full copy of the snapshot content
+  "labels": { # Resource labels to represent user provided metadata.
+    "a_key": "A String",
+  },
+  "name": "A String", # Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}.
+  "state": "A String", # Output only. The snapshot state.
+}
+
+  snapshotId: string, Required. The ID to use for the snapshot. The ID must be unique within the specified instance. This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ +
+ delete(name, x__xgafv=None) +
Deletes a snapshot.
+
+Args:
+  name: string, Required. The snapshot resource name, in the format projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id} (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ +
+ get(name, x__xgafv=None) +
Gets the details of a specific snapshot.
+
+Args:
+  name: string, Required. The snapshot resource name, in the format projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id} (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud Filestore snapshot.
+  "createTime": "A String", # Output only. The time when the snapshot was created.
+  "description": "A String", # A description of the snapshot with 2048 characters or less. Requests with longer descriptions will be rejected.
+  "filesystemUsedBytes": "A String", # Output only. The amount of bytes needed to allocate a full copy of the snapshot content
+  "labels": { # Resource labels to represent user provided metadata.
+    "a_key": "A String",
+  },
+  "name": "A String", # Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}.
+  "state": "A String", # Output only. The snapshot state.
+}
+
+ +
+ list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None) +
Lists all snapshots in a project for either a specified location or for all locations.
+
+Args:
+  parent: string, Required. The instance for which to retrieve snapshot information, in the format projects/{project_id}/locations/{location}/instances/{instance_id}. (required)
+  filter: string, List filter.
+  orderBy: string, Sort results. Supported values are "name", "name desc" or "" (unsorted).
+  pageSize: integer, The maximum number of items to return.
+  pageToken: string, The next_page_token value to use if there are additional results to retrieve for this list request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # ListSnapshotsResponse is the result of ListSnapshotsRequest.
+  "nextPageToken": "A String", # The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.
+  "snapshots": [ # A list of snapshots in the project for the specified instance.
+    { # A Cloud Filestore snapshot.
+      "createTime": "A String", # Output only. The time when the snapshot was created.
+      "description": "A String", # A description of the snapshot with 2048 characters or less. Requests with longer descriptions will be rejected.
+      "filesystemUsedBytes": "A String", # Output only. The amount of bytes needed to allocate a full copy of the snapshot content
+      "labels": { # Resource labels to represent user provided metadata.
+        "a_key": "A String",
+      },
+      "name": "A String", # Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}.
+      "state": "A String", # Output only. The snapshot state.
+    },
+  ],
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+ +
+ patch(name, body=None, updateMask=None, x__xgafv=None) +
Updates the settings of a specific snapshot.
+
+Args:
+  name: string, Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud Filestore snapshot.
+  "createTime": "A String", # Output only. The time when the snapshot was created.
+  "description": "A String", # A description of the snapshot with 2048 characters or less. Requests with longer descriptions will be rejected.
+  "filesystemUsedBytes": "A String", # Output only. The amount of bytes needed to allocate a full copy of the snapshot content
+  "labels": { # Resource labels to represent user provided metadata.
+    "a_key": "A String",
+  },
+  "name": "A String", # Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}.
+  "state": "A String", # Output only. The snapshot state.
+}
+
+  updateMask: string, Required. Mask of fields to update. At least one path must be supplied in this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/firestore_v1.projects.databases.documents.html b/docs/dyn/firestore_v1.projects.databases.documents.html index 02464f5b2f5..58873196aeb 100644 --- a/docs/dyn/firestore_v1.projects.databases.documents.html +++ b/docs/dyn/firestore_v1.projects.databases.documents.html @@ -175,11 +175,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -234,16 +230,31 @@

Method Details

{ # A transformation of a field of the document. "appendMissingElements": { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "fieldPath": "A String", # The path of the field. See Document.fields for the field path syntax reference. "increment": { # A message that can hold any of the supported value types. # Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -263,11 +274,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "maximum": { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -287,11 +294,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "minimum": { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -312,7 +315,26 @@

Method Details

}, "removeAllFromArray": { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "setToServerValue": "A String", # Sets the field to the given server value. @@ -323,11 +345,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -359,16 +377,31 @@

Method Details

{ # A transformation of a field of the document. "appendMissingElements": { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "fieldPath": "A String", # The path of the field. See Document.fields for the field path syntax reference. "increment": { # A message that can hold any of the supported value types. # Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -388,11 +421,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "maximum": { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -412,11 +441,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "minimum": { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -437,7 +462,26 @@

Method Details

}, "removeAllFromArray": { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "setToServerValue": "A String", # Sets the field to the given server value. @@ -471,11 +515,7 @@

Method Details

{ # The result of applying a write. "transformResults": [ # The results of applying each DocumentTransform.FieldTransform, in the same order. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -563,16 +603,31 @@

Method Details

{ # A transformation of a field of the document. "appendMissingElements": { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "fieldPath": "A String", # The path of the field. See Document.fields for the field path syntax reference. "increment": { # A message that can hold any of the supported value types. # Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -592,11 +647,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "maximum": { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -616,11 +667,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "minimum": { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -641,7 +688,26 @@

Method Details

}, "removeAllFromArray": { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "setToServerValue": "A String", # Sets the field to the given server value. @@ -652,11 +718,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -688,16 +750,31 @@

Method Details

{ # A transformation of a field of the document. "appendMissingElements": { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "fieldPath": "A String", # The path of the field. See Document.fields for the field path syntax reference. "increment": { # A message that can hold any of the supported value types. # Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -717,11 +794,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "maximum": { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -741,11 +814,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "minimum": { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -766,7 +835,26 @@

Method Details

}, "removeAllFromArray": { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "setToServerValue": "A String", # Sets the field to the given server value. @@ -790,11 +878,7 @@

Method Details

{ # The result of applying a write. "transformResults": [ # The results of applying each DocumentTransform.FieldTransform, in the same order. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -834,11 +918,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -876,11 +956,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -946,11 +1022,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1003,11 +1075,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1117,11 +1185,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1169,11 +1233,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1207,11 +1267,7 @@

Method Details

}, "op": "A String", # The operator to filter by. "value": { # A message that can hold any of the supported value types. # The value to compare to. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1264,11 +1320,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1354,11 +1406,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1406,11 +1454,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1444,11 +1488,7 @@

Method Details

}, "op": "A String", # The operator to filter by. "value": { # A message that can hold any of the supported value types. # The value to compare to. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1493,11 +1533,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1549,11 +1585,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1593,11 +1625,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1671,11 +1699,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1723,11 +1747,7 @@

Method Details

"before": True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query. "values": [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1761,11 +1781,7 @@

Method Details

}, "op": "A String", # The operator to filter by. "value": { # A message that can hold any of the supported value types. # The value to compare to. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1809,11 +1825,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1870,16 +1882,31 @@

Method Details

{ # A transformation of a field of the document. "appendMissingElements": { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "fieldPath": "A String", # The path of the field. See Document.fields for the field path syntax reference. "increment": { # A message that can hold any of the supported value types. # Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1899,11 +1926,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "maximum": { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1923,11 +1946,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "minimum": { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1948,7 +1967,26 @@

Method Details

}, "removeAllFromArray": { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "setToServerValue": "A String", # Sets the field to the given server value. @@ -1959,11 +1997,7 @@

Method Details

"createTime": "A String", # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query. "fields": { # The document's fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. "a_key": { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -1995,16 +2029,31 @@

Method Details

{ # A transformation of a field of the document. "appendMissingElements": { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "fieldPath": "A String", # The path of the field. See Document.fields for the field path syntax reference. "increment": { # A message that can hold any of the supported value types. # Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -2024,11 +2073,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "maximum": { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -2048,11 +2093,7 @@

Method Details

"timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. }, "minimum": { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. @@ -2073,7 +2114,26 @@

Method Details

}, "removeAllFromArray": { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value. "values": [ # Values in the array. - # Object with schema name: Value + { # A message that can hold any of the supported value types. + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. + "booleanValue": True or False, # A boolean value. + "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. + "doubleValue": 3.14, # A double value. + "geoPointValue": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth. + "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0]. + "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0]. + }, + "integerValue": "A String", # An integer value. + "mapValue": { # A map value. # A map value. + "fields": { # The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. + "a_key": # Object with schema name: Value + }, + }, + "nullValue": "A String", # A null value. + "referenceValue": "A String", # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + "stringValue": "A String", # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries. + "timestampValue": "A String", # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down. + }, ], }, "setToServerValue": "A String", # Sets the field to the given server value. @@ -2099,11 +2159,7 @@

Method Details

{ # The result of applying a write. "transformResults": [ # The results of applying each DocumentTransform.FieldTransform, in the same order. { # A message that can hold any of the supported value types. - "arrayValue": { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array. - "values": [ # Values in the array. - # Object with schema name: Value - ], - }, + "arrayValue": # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array. "booleanValue": True or False, # A boolean value. "bytesValue": "A String", # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries. "doubleValue": 3.14, # A double value. diff --git a/docs/dyn/healthcare_v1beta1.projects.locations.services.nlp.html b/docs/dyn/healthcare_v1beta1.projects.locations.services.nlp.html index 5ec9bfcf045..4894920b5e7 100644 --- a/docs/dyn/healthcare_v1beta1.projects.locations.services.nlp.html +++ b/docs/dyn/healthcare_v1beta1.projects.locations.services.nlp.html @@ -76,14 +76,14 @@

Cloud Healthcare API . analyzeEntities(nlpService, body=None, x__xgafv=None)

-

Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities.

+

Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities. This method can only analyze documents written in English.

close()

Close httplib2 connections.

Method Details

analyzeEntities(nlpService, body=None, x__xgafv=None) -
Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities.
+  
Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities. This method can only analyze documents written in English.
 
 Args:
   nlpService: string, The resource name of the service of the form: "projects/{project_id}/locations/{location_id}/services/nlp". (required)
diff --git a/docs/dyn/index.md b/docs/dyn/index.md
index 6d9671f3652..f951e828013 100644
--- a/docs/dyn/index.md
+++ b/docs/dyn/index.md
@@ -771,12 +771,6 @@
 * [v1beta1](http://googleapis.github.io/google-api-python-client/docs/dyn/redis_v1beta1.html)
 
 
-## remotebuildexecution
-* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/remotebuildexecution_v1.html)
-* [v1alpha](http://googleapis.github.io/google-api-python-client/docs/dyn/remotebuildexecution_v1alpha.html)
-* [v2](http://googleapis.github.io/google-api-python-client/docs/dyn/remotebuildexecution_v2.html)
-
-
 ## reseller
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/reseller_v1.html)
 
@@ -961,7 +955,6 @@
 
 ## verifiedaccess
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/verifiedaccess_v1.html)
-* [v2](http://googleapis.github.io/google-api-python-client/docs/dyn/verifiedaccess_v2.html)
 
 
 ## videointelligence
diff --git a/docs/dyn/monitoring_v1.html b/docs/dyn/monitoring_v1.html
index 7b97a7b2a67..cd5906992ff 100644
--- a/docs/dyn/monitoring_v1.html
+++ b/docs/dyn/monitoring_v1.html
@@ -74,6 +74,11 @@
 
 

Cloud Monitoring API

Instance Methods

+

+ locations() +

+

Returns the locations Resource.

+

operations()

diff --git a/docs/dyn/monitoring_v1.locations.global_.html b/docs/dyn/monitoring_v1.locations.global_.html new file mode 100644 index 00000000000..b52054d65ea --- /dev/null +++ b/docs/dyn/monitoring_v1.locations.global_.html @@ -0,0 +1,91 @@ + + + +

Cloud Monitoring API . locations . global_

+

Instance Methods

+

+ metricsScopes() +

+

Returns the metricsScopes Resource.

+ +

+ close()

+

Close httplib2 connections.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ + \ No newline at end of file diff --git a/docs/dyn/monitoring_v1.locations.global_.metricsScopes.html b/docs/dyn/monitoring_v1.locations.global_.metricsScopes.html new file mode 100644 index 00000000000..8c35e5c7de4 --- /dev/null +++ b/docs/dyn/monitoring_v1.locations.global_.metricsScopes.html @@ -0,0 +1,155 @@ + + + +

Cloud Monitoring API . locations . global_ . metricsScopes

+

Instance Methods

+

+ projects() +

+

Returns the projects Resource.

+ +

+ close()

+

Close httplib2 connections.

+

+ get(name, x__xgafv=None)

+

Returns a specific Metrics Scope.

+

+ listMetricScopesByMonitoredProject(monitoredResourceContainer=None, x__xgafv=None)

+

Returns a list of every Metrics Scope that a specific MonitoredProject has been added to. The metrics scope representing the specified monitored project will always be the first entry in the response.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ get(name, x__xgafv=None) +
Returns a specific Metrics Scope.
+
+Args:
+  name: string, Required. The resource name of the Metrics Scope. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER} (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a Metrics Scope (https://cloud.google.com/monitoring/settings#concept-scope) in Cloud Monitoring, which specifies one or more Google projects and zero or more AWS accounts to monitor together.
+  "createTime": "A String", # Output only. The time when this Metrics Scope was created.
+  "monitoredProjects": [ # Output only. The list of projects monitored by this Metrics Scope.
+    { # A project being monitored (https://cloud.google.com/monitoring/settings/multiple-projects#create-multi) by a Metrics Scope.
+      "createTime": "A String", # Output only. The time when this MonitoredProject was created.
+      "name": "A String", # Immutable. The resource name of the MonitoredProject. On input, the resource name includes the scoping project ID and monitored project ID. On output, it contains the equivalent project numbers. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}
+    },
+  ],
+  "name": "A String", # Immutable. The resource name of the Monitoring Metrics Scope. On input, the resource name can be specified with the scoping project ID or number. On output, the resource name is specified with the scoping project number. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}
+  "updateTime": "A String", # Output only. The time when this Metrics Scope record was last updated.
+}
+
+ +
+ listMetricScopesByMonitoredProject(monitoredResourceContainer=None, x__xgafv=None) +
Returns a list of every Metrics Scope that a specific MonitoredProject has been added to. The metrics scope representing the specified monitored project will always be the first entry in the response.
+
+Args:
+  monitoredResourceContainer: string, Required. The resource name of the Monitored Project being requested. Example: projects/{MONITORED_PROJECT_ID_OR_NUMBER}
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for the ListMetricsScopesByMonitoredProject method.
+  "metricsScopes": [ # A set of all metrics scopes that the specified monitored project has been added to.
+    { # Represents a Metrics Scope (https://cloud.google.com/monitoring/settings#concept-scope) in Cloud Monitoring, which specifies one or more Google projects and zero or more AWS accounts to monitor together.
+      "createTime": "A String", # Output only. The time when this Metrics Scope was created.
+      "monitoredProjects": [ # Output only. The list of projects monitored by this Metrics Scope.
+        { # A project being monitored (https://cloud.google.com/monitoring/settings/multiple-projects#create-multi) by a Metrics Scope.
+          "createTime": "A String", # Output only. The time when this MonitoredProject was created.
+          "name": "A String", # Immutable. The resource name of the MonitoredProject. On input, the resource name includes the scoping project ID and monitored project ID. On output, it contains the equivalent project numbers. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}
+        },
+      ],
+      "name": "A String", # Immutable. The resource name of the Monitoring Metrics Scope. On input, the resource name can be specified with the scoping project ID or number. On output, the resource name is specified with the scoping project number. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}
+      "updateTime": "A String", # Output only. The time when this Metrics Scope record was last updated.
+    },
+  ],
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/monitoring_v1.locations.global_.metricsScopes.projects.html b/docs/dyn/monitoring_v1.locations.global_.metricsScopes.projects.html new file mode 100644 index 00000000000..5f273409141 --- /dev/null +++ b/docs/dyn/monitoring_v1.locations.global_.metricsScopes.projects.html @@ -0,0 +1,170 @@ + + + +

Cloud Monitoring API . locations . global_ . metricsScopes . projects

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ create(parent, body=None, x__xgafv=None)

+

Adds a MonitoredProject with the given project ID to the specified Metrics Scope.

+

+ delete(name, x__xgafv=None)

+

Deletes a MonitoredProject from the specified Metrics Scope.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ create(parent, body=None, x__xgafv=None) +
Adds a MonitoredProject with the given project ID to the specified Metrics Scope.
+
+Args:
+  parent: string, Required. The resource name of the existing Metrics Scope that will monitor this project. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A project being monitored (https://cloud.google.com/monitoring/settings/multiple-projects#create-multi) by a Metrics Scope.
+  "createTime": "A String", # Output only. The time when this MonitoredProject was created.
+  "name": "A String", # Immutable. The resource name of the MonitoredProject. On input, the resource name includes the scoping project ID and monitored project ID. On output, it contains the equivalent project numbers. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+  "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ +
+ delete(name, x__xgafv=None) +
Deletes a MonitoredProject from the specified Metrics Scope.
+
+Args:
+  name: string, Required. The resource name of the MonitoredProject. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}Authorization requires the following Google IAM (https://cloud.google.com/iam) permissions on both the Metrics Scope and on the MonitoredProject: monitoring.metricsScopes.link (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+  "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/monitoring_v1.locations.html b/docs/dyn/monitoring_v1.locations.html new file mode 100644 index 00000000000..e808e64d3ab --- /dev/null +++ b/docs/dyn/monitoring_v1.locations.html @@ -0,0 +1,91 @@ + + + +

Cloud Monitoring API . locations

+

Instance Methods

+

+ global_() +

+

Returns the global_ Resource.

+ +

+ close()

+

Close httplib2 connections.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ + \ No newline at end of file diff --git a/docs/dyn/monitoring_v3.services.serviceLevelObjectives.html b/docs/dyn/monitoring_v3.services.serviceLevelObjectives.html index bc05437f8b2..053603f8af3 100644 --- a/docs/dyn/monitoring_v3.services.serviceLevelObjectives.html +++ b/docs/dyn/monitoring_v3.services.serviceLevelObjectives.html @@ -134,9 +134,9 @@

Method Details

], }, "requestBased": { # Service Level Indicators for which atomic units of service are counted directly. # Request-based SLIs - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -167,9 +167,9 @@

Method Details

], }, "performance": { # Service Level Indicators for which atomic units of service are counted directly. # RequestBasedSli to evaluate to judge window quality. - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -182,15 +182,15 @@

Method Details

}, "threshold": 3.14, # If window performance >= threshold, the window is counted as good. }, - "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, "timeSeries": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. }, - "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -237,9 +237,9 @@

Method Details

], }, "requestBased": { # Service Level Indicators for which atomic units of service are counted directly. # Request-based SLIs - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -270,9 +270,9 @@

Method Details

], }, "performance": { # Service Level Indicators for which atomic units of service are counted directly. # RequestBasedSli to evaluate to judge window quality. - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -285,15 +285,15 @@

Method Details

}, "threshold": 3.14, # If window performance >= threshold, the window is counted as good. }, - "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, "timeSeries": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. }, - "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -369,9 +369,9 @@

Method Details

], }, "requestBased": { # Service Level Indicators for which atomic units of service are counted directly. # Request-based SLIs - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -402,9 +402,9 @@

Method Details

], }, "performance": { # Service Level Indicators for which atomic units of service are counted directly. # RequestBasedSli to evaluate to judge window quality. - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -417,15 +417,15 @@

Method Details

}, "threshold": 3.14, # If window performance >= threshold, the window is counted as good. }, - "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, "timeSeries": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. }, - "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -489,9 +489,9 @@

Method Details

], }, "requestBased": { # Service Level Indicators for which atomic units of service are counted directly. # Request-based SLIs - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -522,9 +522,9 @@

Method Details

], }, "performance": { # Service Level Indicators for which atomic units of service are counted directly. # RequestBasedSli to evaluate to judge window quality. - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -537,15 +537,15 @@

Method Details

}, "threshold": 3.14, # If window performance >= threshold, the window is counted as good. }, - "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, "timeSeries": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. }, - "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -609,9 +609,9 @@

Method Details

], }, "requestBased": { # Service Level Indicators for which atomic units of service are counted directly. # Request-based SLIs - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -642,9 +642,9 @@

Method Details

], }, "performance": { # Service Level Indicators for which atomic units of service are counted directly. # RequestBasedSli to evaluate to judge window quality. - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -657,15 +657,15 @@

Method Details

}, "threshold": 3.14, # If window performance >= threshold, the window is counted as good. }, - "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, "timeSeries": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. }, - "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -712,9 +712,9 @@

Method Details

], }, "requestBased": { # Service Level Indicators for which atomic units of service are counted directly. # Request-based SLIs - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -745,9 +745,9 @@

Method Details

], }, "performance": { # Service Level Indicators for which atomic units of service are counted directly. # RequestBasedSli to evaluate to judge window quality. - "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. + "distributionCut": { # A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max. # distribution_cut is used when good_service is a count of values aggregated in a Distribution that fall into a good range. The total_service is the total count of all values aggregated in the Distribution. "distributionFilter": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, @@ -760,15 +760,15 @@

Method Details

}, "threshold": 3.14, # If window performance >= threshold, the window is counted as good. }, - "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricMeanInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, averaged across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, "timeSeries": "A String", # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) specifying the TimeSeries to use for evaluating window quality. }, - "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. - "range": { # Range of numerical values, inclusive of min and exclusive of max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. + "metricSumInRange": { # A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE. # A window is good if the metric's value is in a good range, summed across returned streams. + "range": { # Range of numerical values within min and max. If the open range "< range.max" is desired, set range.min = -infinity. If the open range ">= range.min" is desired, set range.max = infinity. # Range of values considered "good." For a one-sided range, set one bound to an infinite value. "max": 3.14, # Range maximum. "min": 3.14, # Range minimum. }, diff --git a/docs/dyn/mybusinessnotifications_v1.accounts.html b/docs/dyn/mybusinessnotifications_v1.accounts.html index a27641bcabb..9e5f8ff1b58 100644 --- a/docs/dyn/mybusinessnotifications_v1.accounts.html +++ b/docs/dyn/mybusinessnotifications_v1.accounts.html @@ -104,7 +104,7 @@

Method Details

An object of the form: { # A Google Pub/Sub topic where notifications can be published when a location is updated or has a new review. There will be only one notification setting resource per-account. - "name": "A String", # Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notifications/setting`. + "name": "A String", # Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notificationSetting`. "notificationTypes": [ # The types of notifications that will be sent to the Pub/Sub topic. To stop receiving notifications entirely, use NotificationSettings.UpdateNotificationSetting with an empty notification_types or set the pubsub_topic to an empty string. "A String", ], @@ -117,12 +117,12 @@

Method Details

Sets the pubsub notification setting for the account informing Google which topic to send pubsub notifications for. Use the notification_types field within notification_setting to manipulate the events an account wants to subscribe to. An account will only have one notification setting resource, and only one pubsub topic can be set. To delete the setting, update with an empty notification_types
 
 Args:
-  name: string, Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notifications/setting`. (required)
+  name: string, Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notificationSetting`. (required)
   body: object, The request body.
     The object takes the form of:
 
 { # A Google Pub/Sub topic where notifications can be published when a location is updated or has a new review. There will be only one notification setting resource per-account.
-  "name": "A String", # Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notifications/setting`.
+  "name": "A String", # Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notificationSetting`.
   "notificationTypes": [ # The types of notifications that will be sent to the Pub/Sub topic. To stop receiving notifications entirely, use NotificationSettings.UpdateNotificationSetting with an empty notification_types or set the pubsub_topic to an empty string.
     "A String",
   ],
@@ -139,7 +139,7 @@ 

Method Details

An object of the form: { # A Google Pub/Sub topic where notifications can be published when a location is updated or has a new review. There will be only one notification setting resource per-account. - "name": "A String", # Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notifications/setting`. + "name": "A String", # Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notificationSetting`. "notificationTypes": [ # The types of notifications that will be sent to the Pub/Sub topic. To stop receiving notifications entirely, use NotificationSettings.UpdateNotificationSetting with an empty notification_types or set the pubsub_topic to an empty string. "A String", ], diff --git a/docs/dyn/notebooks_v1.projects.locations.runtimes.html b/docs/dyn/notebooks_v1.projects.locations.runtimes.html index 76c317af383..2b478c4d810 100644 --- a/docs/dyn/notebooks_v1.projects.locations.runtimes.html +++ b/docs/dyn/notebooks_v1.projects.locations.runtimes.html @@ -135,8 +135,8 @@

Method Details

"a_key": "A String", }, }, - "name": "A String", # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}` - "softwareConfig": { # Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true # The config settings for software inside the runtime. + "name": "A String", # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtimeId}` + "softwareConfig": { # Specifies the selection and configuration of software inside the runtime. The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * `idle_shutdown: true` * `idle_shutdown_timeout: 180` * `report-system-health: true` # The config settings for software inside the runtime. "customGpuDriverPath": "A String", # Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers. "enableHealthMonitoring": True or False, # Verifies core internal services are running. Default: True "idleShutdown": True or False, # Runtime will automatically shutdown after idle_shutdown_time. Default: True @@ -162,16 +162,16 @@

Method Details

}, ], "dataDisk": { # An Local attached disk resource. # Required. Data disk option configuration settings. - "autoDelete": True or False, # Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). - "boot": True or False, # Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. - "deviceName": "A String", # Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. + "autoDelete": True or False, # Optional. Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). + "boot": True or False, # Optional. Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. + "deviceName": "A String", # Optional. Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. "guestOsFeatures": [ # Output only. Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. - { # A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk. - "type": "A String", # The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS + { # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Guest OS features for boot disk. + "type": "A String", # The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * FEATURE_TYPE_UNSPECIFIED * MULTI_IP_SUBNET * SECURE_BOOT * UEFI_COMPATIBLE * VIRTIO_SCSI_MULTIQUEUE * WINDOWS }, ], - "index": 42, # Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. - "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. + "index": 42, # Output only. A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. + "initializeParams": { # Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. "description": "A String", # Optional. Provide this property when creating the disk. "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated. "diskSizeGb": "A String", # Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB. @@ -182,7 +182,7 @@

Method Details

}, "interface": "A String", # Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI "kind": "A String", # Output only. Type of the resource. Always compute#attachedDisk for attached disks. - "licenses": [ # Output only. [Output Only] Any valid publicly visible licenses. + "licenses": [ # Output only. Any valid publicly visible licenses. "A String", ], "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: READ_ONLY READ_WRITE @@ -205,7 +205,7 @@

Method Details

}, "network": "A String", # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the "default" network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network & subnet are empty) * Consumer Project VPC (network & subnet are required). Requires configuring Private Service Access. * Shared VPC (network & subnet are required). Requires configuring Private Service Access. "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. - "shieldedInstanceConfig": { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # Optional. Shielded VM Instance configuration settings. + "shieldedInstanceConfig": { # A set of Shielded Instance options. Check [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid. # Optional. Shielded VM Instance configuration settings. "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default. "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default. "enableVtpm": True or False, # Defines whether the instance has the vTPM enabled. Enabled by default. @@ -311,8 +311,8 @@

Method Details

"a_key": "A String", }, }, - "name": "A String", # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}` - "softwareConfig": { # Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true # The config settings for software inside the runtime. + "name": "A String", # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtimeId}` + "softwareConfig": { # Specifies the selection and configuration of software inside the runtime. The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * `idle_shutdown: true` * `idle_shutdown_timeout: 180` * `report-system-health: true` # The config settings for software inside the runtime. "customGpuDriverPath": "A String", # Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers. "enableHealthMonitoring": True or False, # Verifies core internal services are running. Default: True "idleShutdown": True or False, # Runtime will automatically shutdown after idle_shutdown_time. Default: True @@ -338,16 +338,16 @@

Method Details

}, ], "dataDisk": { # An Local attached disk resource. # Required. Data disk option configuration settings. - "autoDelete": True or False, # Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). - "boot": True or False, # Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. - "deviceName": "A String", # Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. + "autoDelete": True or False, # Optional. Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). + "boot": True or False, # Optional. Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. + "deviceName": "A String", # Optional. Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. "guestOsFeatures": [ # Output only. Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. - { # A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk. - "type": "A String", # The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS + { # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Guest OS features for boot disk. + "type": "A String", # The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * FEATURE_TYPE_UNSPECIFIED * MULTI_IP_SUBNET * SECURE_BOOT * UEFI_COMPATIBLE * VIRTIO_SCSI_MULTIQUEUE * WINDOWS }, ], - "index": 42, # Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. - "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. + "index": 42, # Output only. A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. + "initializeParams": { # Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. "description": "A String", # Optional. Provide this property when creating the disk. "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated. "diskSizeGb": "A String", # Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB. @@ -358,7 +358,7 @@

Method Details

}, "interface": "A String", # Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI "kind": "A String", # Output only. Type of the resource. Always compute#attachedDisk for attached disks. - "licenses": [ # Output only. [Output Only] Any valid publicly visible licenses. + "licenses": [ # Output only. Any valid publicly visible licenses. "A String", ], "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: READ_ONLY READ_WRITE @@ -381,7 +381,7 @@

Method Details

}, "network": "A String", # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the "default" network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network & subnet are empty) * Consumer Project VPC (network & subnet are required). Requires configuring Private Service Access. * Shared VPC (network & subnet are required). Requires configuring Private Service Access. "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. - "shieldedInstanceConfig": { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # Optional. Shielded VM Instance configuration settings. + "shieldedInstanceConfig": { # A set of Shielded Instance options. Check [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid. # Optional. Shielded VM Instance configuration settings. "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default. "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default. "enableVtpm": True or False, # Defines whether the instance has the vTPM enabled. Enabled by default. @@ -428,8 +428,8 @@

Method Details

"a_key": "A String", }, }, - "name": "A String", # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}` - "softwareConfig": { # Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true # The config settings for software inside the runtime. + "name": "A String", # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtimeId}` + "softwareConfig": { # Specifies the selection and configuration of software inside the runtime. The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * `idle_shutdown: true` * `idle_shutdown_timeout: 180` * `report-system-health: true` # The config settings for software inside the runtime. "customGpuDriverPath": "A String", # Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers. "enableHealthMonitoring": True or False, # Verifies core internal services are running. Default: True "idleShutdown": True or False, # Runtime will automatically shutdown after idle_shutdown_time. Default: True @@ -455,16 +455,16 @@

Method Details

}, ], "dataDisk": { # An Local attached disk resource. # Required. Data disk option configuration settings. - "autoDelete": True or False, # Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). - "boot": True or False, # Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. - "deviceName": "A String", # Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. + "autoDelete": True or False, # Optional. Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). + "boot": True or False, # Optional. Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. + "deviceName": "A String", # Optional. Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. "guestOsFeatures": [ # Output only. Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. - { # A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk. - "type": "A String", # The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS + { # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Guest OS features for boot disk. + "type": "A String", # The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * FEATURE_TYPE_UNSPECIFIED * MULTI_IP_SUBNET * SECURE_BOOT * UEFI_COMPATIBLE * VIRTIO_SCSI_MULTIQUEUE * WINDOWS }, ], - "index": 42, # Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. - "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. + "index": 42, # Output only. A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. + "initializeParams": { # Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. "description": "A String", # Optional. Provide this property when creating the disk. "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated. "diskSizeGb": "A String", # Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB. @@ -475,7 +475,7 @@

Method Details

}, "interface": "A String", # Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI "kind": "A String", # Output only. Type of the resource. Always compute#attachedDisk for attached disks. - "licenses": [ # Output only. [Output Only] Any valid publicly visible licenses. + "licenses": [ # Output only. Any valid publicly visible licenses. "A String", ], "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: READ_ONLY READ_WRITE @@ -498,7 +498,7 @@

Method Details

}, "network": "A String", # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the "default" network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network & subnet are empty) * Consumer Project VPC (network & subnet are required). Requires configuring Private Service Access. * Shared VPC (network & subnet are required). Requires configuring Private Service Access. "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. - "shieldedInstanceConfig": { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # Optional. Shielded VM Instance configuration settings. + "shieldedInstanceConfig": { # A set of Shielded Instance options. Check [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid. # Optional. Shielded VM Instance configuration settings. "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default. "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default. "enableVtpm": True or False, # Defines whether the instance has the vTPM enabled. Enabled by default. diff --git a/docs/dyn/people_v1.otherContacts.html b/docs/dyn/people_v1.otherContacts.html index 9b427f08895..c6c31f8a219 100644 --- a/docs/dyn/people_v1.otherContacts.html +++ b/docs/dyn/people_v1.otherContacts.html @@ -82,7 +82,7 @@

Instance Methods

Copies an "Other contact" to a new contact in the user's "myContacts" group

list(pageSize=None, pageToken=None, readMask=None, requestSyncToken=None, sources=None, syncToken=None, x__xgafv=None)

-

List all "Other contacts", that is contacts that are not in a contact group. "Other contacts" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).

+

List all "Other contacts", that is contacts that are not in a contact group. "Other contacts" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).

list_next(previous_request, previous_response)

Retrieves the next page of results.

@@ -130,7 +130,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -143,6 +143,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -157,7 +158,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -170,6 +171,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -178,7 +180,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -191,6 +193,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -204,7 +207,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -217,6 +220,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -225,7 +229,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -238,6 +242,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -247,7 +252,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -260,6 +265,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -270,7 +276,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -283,6 +289,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -292,7 +299,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -305,6 +312,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -315,7 +323,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -328,6 +336,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -344,7 +353,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -357,6 +366,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -366,7 +376,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -379,6 +389,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -388,7 +399,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -401,6 +412,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -411,7 +423,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -424,6 +436,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -434,7 +447,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -447,6 +460,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -457,7 +471,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -470,6 +484,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -478,7 +493,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -491,6 +506,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -504,7 +520,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -517,6 +533,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -533,7 +550,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -546,6 +563,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -578,7 +596,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -591,6 +609,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -606,7 +625,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -619,6 +638,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -634,7 +654,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -647,6 +667,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -656,7 +677,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -669,6 +690,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -688,7 +710,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -701,6 +723,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -720,7 +743,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -733,6 +756,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -743,7 +767,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -756,6 +780,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -765,7 +790,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -778,6 +803,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -788,7 +814,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -801,6 +827,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -810,7 +837,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -823,6 +850,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -832,7 +860,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -845,6 +873,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -855,7 +884,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -868,6 +897,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -877,7 +907,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -890,6 +920,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -898,7 +929,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -911,6 +942,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -920,7 +952,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -933,6 +965,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -943,7 +976,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -956,6 +989,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -966,7 +1000,7 @@

Method Details

list(pageSize=None, pageToken=None, readMask=None, requestSyncToken=None, sources=None, syncToken=None, x__xgafv=None) -
List all "Other contacts", that is contacts that are not in a contact group. "Other contacts" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).
+  
List all "Other contacts", that is contacts that are not in a contact group. "Other contacts" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).
 
 Args:
   pageSize: integer, Optional. The number of "Other contacts" to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0.
@@ -1002,7 +1036,7 @@ 

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1015,6 +1049,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -1029,7 +1064,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1042,6 +1077,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -1050,7 +1086,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1063,6 +1099,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -1076,7 +1113,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1089,6 +1126,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -1097,7 +1135,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1110,6 +1148,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -1119,7 +1158,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1132,6 +1171,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -1142,7 +1182,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1155,6 +1195,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -1164,7 +1205,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1177,6 +1218,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -1187,7 +1229,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1200,6 +1242,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -1216,7 +1259,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1229,6 +1272,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -1238,7 +1282,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1251,6 +1295,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -1260,7 +1305,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1273,6 +1318,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -1283,7 +1329,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1296,6 +1342,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -1306,7 +1353,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1319,6 +1366,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -1329,7 +1377,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1342,6 +1390,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -1350,7 +1399,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1363,6 +1412,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -1376,7 +1426,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1389,6 +1439,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -1405,7 +1456,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1418,6 +1469,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -1450,7 +1502,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1463,6 +1515,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -1478,7 +1531,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1491,6 +1544,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -1506,7 +1560,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1519,6 +1573,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -1528,7 +1583,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1541,6 +1596,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -1560,7 +1616,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1573,6 +1629,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -1592,7 +1649,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1605,6 +1662,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -1615,7 +1673,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1628,6 +1686,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -1637,7 +1696,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1650,6 +1709,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -1660,7 +1720,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1673,6 +1733,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -1682,7 +1743,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1695,6 +1756,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -1704,7 +1766,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1717,6 +1779,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -1727,7 +1790,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1740,6 +1803,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -1749,7 +1813,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1762,6 +1826,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -1770,7 +1835,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1783,6 +1848,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -1792,7 +1858,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1805,6 +1871,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -1815,7 +1882,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1828,6 +1895,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -1882,7 +1950,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1895,6 +1963,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -1909,7 +1978,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1922,6 +1991,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -1930,7 +2000,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1943,6 +2013,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -1956,7 +2027,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1969,6 +2040,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -1977,7 +2049,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1990,6 +2062,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -1999,7 +2072,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2012,6 +2085,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -2022,7 +2096,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2035,6 +2109,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -2044,7 +2119,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2057,6 +2132,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -2067,7 +2143,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2080,6 +2156,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -2096,7 +2173,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2109,6 +2186,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -2118,7 +2196,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2131,6 +2209,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -2140,7 +2219,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2153,6 +2232,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -2163,7 +2243,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2176,6 +2256,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -2186,7 +2267,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2199,6 +2280,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -2209,7 +2291,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2222,6 +2304,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -2230,7 +2313,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2243,6 +2326,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -2256,7 +2340,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2269,6 +2353,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -2285,7 +2370,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2298,6 +2383,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -2330,7 +2416,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2343,6 +2429,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -2358,7 +2445,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2371,6 +2458,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -2386,7 +2474,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2399,6 +2487,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -2408,7 +2497,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2421,6 +2510,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -2440,7 +2530,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2453,6 +2543,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -2472,7 +2563,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2485,6 +2576,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -2495,7 +2587,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2508,6 +2600,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -2517,7 +2610,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2530,6 +2623,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -2540,7 +2634,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2553,6 +2647,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -2562,7 +2657,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2575,6 +2670,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -2584,7 +2680,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2597,6 +2693,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -2607,7 +2704,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2620,6 +2717,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -2629,7 +2727,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2642,6 +2740,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -2650,7 +2749,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2663,6 +2762,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -2672,7 +2772,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2685,6 +2785,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -2695,7 +2796,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2708,6 +2809,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. diff --git a/docs/dyn/people_v1.people.connections.html b/docs/dyn/people_v1.people.connections.html index 5bb979ebdf2..eacaed0073f 100644 --- a/docs/dyn/people_v1.people.connections.html +++ b/docs/dyn/people_v1.people.connections.html @@ -79,7 +79,7 @@

Instance Methods

Close httplib2 connections.

list(resourceName, pageSize=None, pageToken=None, personFields=None, requestMask_includeField=None, requestSyncToken=None, sortOrder=None, sources=None, syncToken=None, x__xgafv=None)

-

Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).

+

Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).

list_next(previous_request, previous_response)

Retrieves the next page of results.

@@ -91,7 +91,7 @@

Method Details

list(resourceName, pageSize=None, pageToken=None, personFields=None, requestMask_includeField=None, requestSyncToken=None, sortOrder=None, sources=None, syncToken=None, x__xgafv=None) -
Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).
+  
Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).
 
 Args:
   resourceName: string, Required. The resource name to return connections for. Only `people/me` is valid. (required)
@@ -133,7 +133,7 @@ 

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -146,6 +146,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -160,7 +161,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -173,6 +174,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -181,7 +183,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -194,6 +196,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -207,7 +210,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -220,6 +223,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -228,7 +232,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -241,6 +245,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -250,7 +255,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -263,6 +268,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -273,7 +279,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -286,6 +292,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -295,7 +302,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -308,6 +315,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -318,7 +326,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -331,6 +339,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -347,7 +356,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -360,6 +369,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -369,7 +379,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -382,6 +392,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -391,7 +402,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -404,6 +415,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -414,7 +426,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -427,6 +439,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -437,7 +450,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -450,6 +463,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -460,7 +474,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -473,6 +487,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -481,7 +496,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -494,6 +509,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -507,7 +523,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -520,6 +536,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -536,7 +553,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -549,6 +566,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -581,7 +599,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -594,6 +612,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -609,7 +628,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -622,6 +641,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -637,7 +657,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -650,6 +670,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -659,7 +680,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -672,6 +693,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -691,7 +713,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -704,6 +726,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -723,7 +746,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -736,6 +759,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -746,7 +770,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -759,6 +783,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -768,7 +793,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -781,6 +806,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -791,7 +817,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -804,6 +830,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -813,7 +840,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -826,6 +853,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -835,7 +863,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -848,6 +876,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -858,7 +887,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -871,6 +900,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -880,7 +910,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -893,6 +923,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -901,7 +932,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -914,6 +945,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -923,7 +955,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -936,6 +968,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -946,7 +979,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -959,6 +992,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. diff --git a/docs/dyn/people_v1.people.html b/docs/dyn/people_v1.people.html index bde6b9997b9..07ea4b0af27 100644 --- a/docs/dyn/people_v1.people.html +++ b/docs/dyn/people_v1.people.html @@ -108,7 +108,7 @@

Instance Methods

Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified.

listDirectoryPeople(mergeSources=None, pageSize=None, pageToken=None, readMask=None, requestSyncToken=None, sources=None, syncToken=None, x__xgafv=None)

-

Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).

+

Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).

listDirectoryPeople_next(previous_request, previous_response)

Retrieves the next page of results.

@@ -149,7 +149,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -162,6 +162,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -176,7 +177,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -189,6 +190,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -197,7 +199,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -210,6 +212,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -223,7 +226,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -236,6 +239,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -244,7 +248,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -257,6 +261,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -266,7 +271,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -279,6 +284,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -289,7 +295,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -302,6 +308,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -311,7 +318,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -324,6 +331,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -334,7 +342,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -347,6 +355,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -363,7 +372,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -376,6 +385,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -385,7 +395,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -398,6 +408,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -407,7 +418,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -420,6 +431,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -430,7 +442,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -443,6 +455,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -453,7 +466,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -466,6 +479,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -476,7 +490,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -489,6 +503,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -497,7 +512,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -510,6 +525,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -523,7 +539,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -536,6 +552,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -552,7 +569,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -565,6 +582,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -597,7 +615,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -610,6 +628,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -625,7 +644,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -638,6 +657,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -653,7 +673,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -666,6 +686,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -675,7 +696,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -688,6 +709,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -707,7 +729,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -720,6 +742,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -739,7 +762,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -752,6 +775,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -762,7 +786,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -775,6 +799,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -784,7 +809,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -797,6 +822,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -807,7 +833,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -820,6 +846,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -829,7 +856,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -842,6 +869,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -851,7 +879,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -864,6 +892,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -874,7 +903,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -887,6 +916,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -896,7 +926,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -909,6 +939,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -917,7 +948,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -930,6 +961,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -939,7 +971,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -952,6 +984,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -962,7 +995,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -975,6 +1008,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -1011,7 +1045,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1024,6 +1058,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -1038,7 +1073,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1051,6 +1086,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -1059,7 +1095,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1072,6 +1108,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -1085,7 +1122,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1098,6 +1135,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -1106,7 +1144,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1119,6 +1157,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -1128,7 +1167,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1141,6 +1180,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -1151,7 +1191,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1164,6 +1204,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -1173,7 +1214,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1186,6 +1227,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -1196,7 +1238,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1209,6 +1251,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -1225,7 +1268,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1238,6 +1281,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -1247,7 +1291,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1260,6 +1304,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -1269,7 +1314,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1282,6 +1327,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -1292,7 +1338,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1305,6 +1351,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -1315,7 +1362,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1328,6 +1375,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -1338,7 +1386,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1351,6 +1399,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -1359,7 +1408,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1372,6 +1421,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -1385,7 +1435,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1398,6 +1448,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -1414,7 +1465,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1427,6 +1478,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -1459,7 +1511,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1472,6 +1524,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -1487,7 +1540,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1500,6 +1553,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -1515,7 +1569,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1528,6 +1582,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -1537,7 +1592,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1550,6 +1605,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -1569,7 +1625,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1582,6 +1638,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -1601,7 +1658,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1614,6 +1671,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -1624,7 +1682,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1637,6 +1695,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -1646,7 +1705,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1659,6 +1718,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -1669,7 +1729,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1682,6 +1742,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -1691,7 +1752,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1704,6 +1765,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -1713,7 +1775,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1726,6 +1788,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -1736,7 +1799,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1749,6 +1812,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -1758,7 +1822,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1771,6 +1835,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -1779,7 +1844,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1792,6 +1857,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -1801,7 +1867,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1814,6 +1880,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -1824,7 +1891,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1837,6 +1904,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -1904,7 +1972,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1917,6 +1985,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -1931,7 +2000,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1944,6 +2013,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -1952,7 +2022,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1965,6 +2035,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -1978,7 +2049,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -1991,6 +2062,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -1999,7 +2071,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2012,6 +2084,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -2021,7 +2094,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2034,6 +2107,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -2044,7 +2118,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2057,6 +2131,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -2066,7 +2141,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2079,6 +2154,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -2089,7 +2165,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2102,6 +2178,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -2118,7 +2195,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2131,6 +2208,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -2140,7 +2218,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2153,6 +2231,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -2162,7 +2241,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2175,6 +2254,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -2185,7 +2265,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2198,6 +2278,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -2208,7 +2289,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2221,6 +2302,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -2231,7 +2313,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2244,6 +2326,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -2252,7 +2335,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2265,6 +2348,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -2278,7 +2362,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2291,6 +2375,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -2307,7 +2392,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2320,6 +2405,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -2352,7 +2438,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2365,6 +2451,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -2380,7 +2467,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2393,6 +2480,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -2408,7 +2496,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2421,6 +2509,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -2430,7 +2519,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2443,6 +2532,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -2462,7 +2552,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2475,6 +2565,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -2494,7 +2585,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2507,6 +2598,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -2517,7 +2609,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2530,6 +2622,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -2539,7 +2632,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2552,6 +2645,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -2562,7 +2656,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2575,6 +2669,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -2584,7 +2679,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2597,6 +2692,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -2606,7 +2702,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2619,6 +2715,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -2629,7 +2726,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2642,6 +2739,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -2651,7 +2749,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2664,6 +2762,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -2672,7 +2771,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2685,6 +2784,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -2694,7 +2794,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2707,6 +2807,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -2717,7 +2818,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2730,6 +2831,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -2766,7 +2868,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2779,6 +2881,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -2793,7 +2896,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2806,6 +2909,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -2814,7 +2918,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2827,6 +2931,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -2840,7 +2945,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2853,6 +2958,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -2861,7 +2967,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2874,6 +2980,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -2883,7 +2990,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2896,6 +3003,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -2906,7 +3014,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2919,6 +3027,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -2928,7 +3037,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2941,6 +3050,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -2951,7 +3061,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2964,6 +3074,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -2980,7 +3091,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -2993,6 +3104,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -3002,7 +3114,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3015,6 +3127,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -3024,7 +3137,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3037,6 +3150,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -3047,7 +3161,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3060,6 +3174,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -3070,7 +3185,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3083,6 +3198,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -3093,7 +3209,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3106,6 +3222,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -3114,7 +3231,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3127,6 +3244,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -3140,7 +3258,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3153,6 +3271,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -3169,7 +3288,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3182,6 +3301,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -3214,7 +3334,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3227,6 +3347,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -3242,7 +3363,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3255,6 +3376,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -3270,7 +3392,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3283,6 +3405,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -3292,7 +3415,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3305,6 +3428,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -3324,7 +3448,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3337,6 +3461,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -3356,7 +3481,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3369,6 +3494,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -3379,7 +3505,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3392,6 +3518,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -3401,7 +3528,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3414,6 +3541,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -3424,7 +3552,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3437,6 +3565,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -3446,7 +3575,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3459,6 +3588,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -3468,7 +3598,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3481,6 +3611,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -3491,7 +3622,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3504,6 +3635,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -3513,7 +3645,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3526,6 +3658,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -3534,7 +3667,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3547,6 +3680,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -3556,7 +3690,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3569,6 +3703,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -3579,7 +3714,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3592,6 +3727,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -3636,7 +3772,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3649,6 +3785,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -3663,7 +3800,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3676,6 +3813,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -3684,7 +3822,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3697,6 +3835,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -3710,7 +3849,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3723,6 +3862,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -3731,7 +3871,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3744,6 +3884,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -3753,7 +3894,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3766,6 +3907,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -3776,7 +3918,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3789,6 +3931,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -3798,7 +3941,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3811,6 +3954,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -3821,7 +3965,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3834,6 +3978,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -3850,7 +3995,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3863,6 +4008,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -3872,7 +4018,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3885,6 +4031,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -3894,7 +4041,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3907,6 +4054,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -3917,7 +4065,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3930,6 +4078,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -3940,7 +4089,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3953,6 +4102,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -3963,7 +4113,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3976,6 +4126,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -3984,7 +4135,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -3997,6 +4148,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -4010,7 +4162,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4023,6 +4175,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -4039,7 +4192,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4052,6 +4205,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -4084,7 +4238,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4097,6 +4251,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -4112,7 +4267,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4125,6 +4280,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -4140,7 +4296,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4153,6 +4309,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -4162,7 +4319,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4175,6 +4332,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -4194,7 +4352,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4207,6 +4365,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -4226,7 +4385,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4239,6 +4398,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -4249,7 +4409,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4262,6 +4422,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -4271,7 +4432,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4284,6 +4445,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -4294,7 +4456,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4307,6 +4469,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -4316,7 +4479,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4329,6 +4492,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -4338,7 +4502,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4351,6 +4515,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -4361,7 +4526,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4374,6 +4539,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -4383,7 +4549,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4396,6 +4562,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -4404,7 +4571,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4417,6 +4584,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -4426,7 +4594,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4439,6 +4607,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -4449,7 +4618,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4462,6 +4631,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -4494,7 +4664,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4507,6 +4677,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -4521,7 +4692,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4534,6 +4705,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -4542,7 +4714,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4555,6 +4727,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -4568,7 +4741,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4581,6 +4754,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -4589,7 +4763,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4602,6 +4776,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -4611,7 +4786,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4624,6 +4799,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -4634,7 +4810,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4647,6 +4823,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -4656,7 +4833,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4669,6 +4846,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -4679,7 +4857,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4692,6 +4870,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -4708,7 +4887,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4721,6 +4900,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -4730,7 +4910,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4743,6 +4923,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -4752,7 +4933,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4765,6 +4946,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -4775,7 +4957,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4788,6 +4970,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -4798,7 +4981,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4811,6 +4994,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -4821,7 +5005,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4834,6 +5018,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -4842,7 +5027,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4855,6 +5040,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -4868,7 +5054,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4881,6 +5067,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -4897,7 +5084,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4910,6 +5097,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -4942,7 +5130,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4955,6 +5143,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -4970,7 +5159,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -4983,6 +5172,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -4998,7 +5188,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5011,6 +5201,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -5020,7 +5211,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5033,6 +5224,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -5052,7 +5244,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5065,6 +5257,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -5084,7 +5277,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5097,6 +5290,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -5107,7 +5301,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5120,6 +5314,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -5129,7 +5324,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5142,6 +5337,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -5152,7 +5348,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5165,6 +5361,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -5174,7 +5371,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5187,6 +5384,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -5196,7 +5394,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5209,6 +5407,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -5219,7 +5418,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5232,6 +5431,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -5241,7 +5441,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5254,6 +5454,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -5262,7 +5463,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5275,6 +5476,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -5284,7 +5486,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5297,6 +5499,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -5307,7 +5510,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5320,6 +5523,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -5378,7 +5582,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5391,6 +5595,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -5405,7 +5610,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5418,6 +5623,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -5426,7 +5632,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5439,6 +5645,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -5452,7 +5659,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5465,6 +5672,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -5473,7 +5681,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5486,6 +5694,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -5495,7 +5704,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5508,6 +5717,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -5518,7 +5728,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5531,6 +5741,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -5540,7 +5751,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5553,6 +5764,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -5563,7 +5775,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5576,6 +5788,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -5592,7 +5805,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5605,6 +5818,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -5614,7 +5828,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5627,6 +5841,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -5636,7 +5851,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5649,6 +5864,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -5659,7 +5875,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5672,6 +5888,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -5682,7 +5899,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5695,6 +5912,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -5705,7 +5923,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5718,6 +5936,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -5726,7 +5945,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5739,6 +5958,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -5752,7 +5972,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5765,6 +5985,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -5781,7 +6002,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5794,6 +6015,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -5826,7 +6048,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5839,6 +6061,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -5854,7 +6077,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5867,6 +6090,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -5882,7 +6106,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5895,6 +6119,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -5904,7 +6129,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5917,6 +6142,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -5936,7 +6162,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5949,6 +6175,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -5968,7 +6195,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -5981,6 +6208,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -5991,7 +6219,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6004,6 +6232,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -6013,7 +6242,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6026,6 +6255,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -6036,7 +6266,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6049,6 +6279,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -6058,7 +6289,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6071,6 +6302,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -6080,7 +6312,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6093,6 +6325,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -6103,7 +6336,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6116,6 +6349,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -6125,7 +6359,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6138,6 +6372,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -6146,7 +6381,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6159,6 +6394,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -6168,7 +6404,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6181,6 +6417,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -6191,7 +6428,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6204,6 +6441,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -6245,7 +6483,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6258,6 +6496,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -6272,7 +6511,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6285,6 +6524,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -6293,7 +6533,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6306,6 +6546,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -6319,7 +6560,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6332,6 +6573,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -6340,7 +6582,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6353,6 +6595,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -6362,7 +6605,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6375,6 +6618,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -6385,7 +6629,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6398,6 +6642,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -6407,7 +6652,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6420,6 +6665,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -6430,7 +6676,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6443,6 +6689,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -6459,7 +6706,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6472,6 +6719,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -6481,7 +6729,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6494,6 +6742,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -6503,7 +6752,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6516,6 +6765,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -6526,7 +6776,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6539,6 +6789,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -6549,7 +6800,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6562,6 +6813,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -6572,7 +6824,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6585,6 +6837,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -6593,7 +6846,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6606,6 +6859,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -6619,7 +6873,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6632,6 +6886,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -6648,7 +6903,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6661,6 +6916,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -6693,7 +6949,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6706,6 +6962,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -6721,7 +6978,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6734,6 +6991,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -6749,7 +7007,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6762,6 +7020,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -6771,7 +7030,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6784,6 +7043,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -6803,7 +7063,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6816,6 +7076,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -6835,7 +7096,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6848,6 +7109,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -6858,7 +7120,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6871,6 +7133,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -6880,7 +7143,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6893,6 +7156,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -6903,7 +7167,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6916,6 +7180,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -6925,7 +7190,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6938,6 +7203,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -6947,7 +7213,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6960,6 +7226,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -6970,7 +7237,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -6983,6 +7250,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -6992,7 +7260,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7005,6 +7273,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -7013,7 +7282,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7026,6 +7295,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -7035,7 +7305,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7048,6 +7318,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -7058,7 +7329,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7071,6 +7342,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -7115,7 +7387,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7128,6 +7400,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -7142,7 +7415,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7155,6 +7428,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -7163,7 +7437,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7176,6 +7450,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -7189,7 +7464,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7202,6 +7477,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -7210,7 +7486,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7223,6 +7499,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -7232,7 +7509,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7245,6 +7522,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -7255,7 +7533,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7268,6 +7546,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -7277,7 +7556,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7290,6 +7569,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -7300,7 +7580,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7313,6 +7593,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -7329,7 +7610,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7342,6 +7623,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -7351,7 +7633,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7364,6 +7646,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -7373,7 +7656,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7386,6 +7669,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -7396,7 +7680,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7409,6 +7693,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -7419,7 +7704,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7432,6 +7717,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -7442,7 +7728,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7455,6 +7741,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -7463,7 +7750,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7476,6 +7763,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -7489,7 +7777,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7502,6 +7790,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -7518,7 +7807,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7531,6 +7820,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -7563,7 +7853,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7576,6 +7866,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -7591,7 +7882,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7604,6 +7895,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -7619,7 +7911,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7632,6 +7924,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -7641,7 +7934,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7654,6 +7947,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -7673,7 +7967,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7686,6 +7980,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -7705,7 +8000,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7718,6 +8013,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -7728,7 +8024,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7741,6 +8037,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -7750,7 +8047,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7763,6 +8060,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -7773,7 +8071,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7786,6 +8084,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -7795,7 +8094,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7808,6 +8107,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -7817,7 +8117,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7830,6 +8130,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -7840,7 +8141,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7853,6 +8154,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -7862,7 +8164,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7875,6 +8177,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -7883,7 +8186,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7896,6 +8199,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -7905,7 +8209,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7918,6 +8222,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -7928,7 +8233,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -7941,6 +8246,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -7964,7 +8270,7 @@

Method Details

listDirectoryPeople(mergeSources=None, pageSize=None, pageToken=None, readMask=None, requestSyncToken=None, sources=None, syncToken=None, x__xgafv=None) -
Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).
+  
Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).
 
 Args:
   mergeSources: string, Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers. (repeated)
@@ -8003,7 +8309,7 @@ 

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8016,6 +8322,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -8030,7 +8337,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8043,6 +8350,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -8051,7 +8359,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8064,6 +8372,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -8077,7 +8386,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8090,6 +8399,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -8098,7 +8408,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8111,6 +8421,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -8120,7 +8431,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8133,6 +8444,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -8143,7 +8455,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8156,6 +8468,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -8165,7 +8478,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8178,6 +8491,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -8188,7 +8502,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8201,6 +8515,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -8217,7 +8532,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8230,6 +8545,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -8239,7 +8555,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8252,6 +8568,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -8261,7 +8578,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8274,6 +8591,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -8284,7 +8602,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8297,6 +8615,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -8307,7 +8626,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8320,6 +8639,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -8330,7 +8650,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8343,6 +8663,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -8351,7 +8672,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8364,6 +8685,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -8377,7 +8699,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8390,6 +8712,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -8406,7 +8729,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8419,6 +8742,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -8451,7 +8775,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8464,6 +8788,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -8479,7 +8804,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8492,6 +8817,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -8507,7 +8833,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8520,6 +8846,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -8529,7 +8856,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8542,6 +8869,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -8561,7 +8889,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8574,6 +8902,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -8593,7 +8922,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8606,6 +8935,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -8616,7 +8946,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8629,6 +8959,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -8638,7 +8969,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8651,6 +8982,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -8661,7 +8993,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8674,6 +9006,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -8683,7 +9016,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8696,6 +9029,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -8705,7 +9039,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8718,6 +9052,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -8728,7 +9063,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8741,6 +9076,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -8750,7 +9086,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8763,6 +9099,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -8771,7 +9108,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8784,6 +9121,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -8793,7 +9131,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8806,6 +9144,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -8816,7 +9155,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8829,6 +9168,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -8888,7 +9228,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8901,6 +9241,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -8915,7 +9256,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8928,6 +9269,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -8936,7 +9278,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8949,6 +9291,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -8962,7 +9305,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8975,6 +9318,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -8983,7 +9327,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -8996,6 +9340,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -9005,7 +9350,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9018,6 +9363,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -9028,7 +9374,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9041,6 +9387,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -9050,7 +9397,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9063,6 +9410,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -9073,7 +9421,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9086,6 +9434,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -9102,7 +9451,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9115,6 +9464,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -9124,7 +9474,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9137,6 +9487,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -9146,7 +9497,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9159,6 +9510,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -9169,7 +9521,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9182,6 +9534,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -9192,7 +9545,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9205,6 +9558,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -9215,7 +9569,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9228,6 +9582,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -9236,7 +9591,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9249,6 +9604,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -9262,7 +9618,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9275,6 +9631,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -9291,7 +9648,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9304,6 +9661,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -9336,7 +9694,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9349,6 +9707,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -9364,7 +9723,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9377,6 +9736,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -9392,7 +9752,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9405,6 +9765,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -9414,7 +9775,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9427,6 +9788,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -9446,7 +9808,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9459,6 +9821,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -9478,7 +9841,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9491,6 +9854,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -9501,7 +9865,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9514,6 +9878,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -9523,7 +9888,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9536,6 +9901,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -9546,7 +9912,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9559,6 +9925,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -9568,7 +9935,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9581,6 +9948,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -9590,7 +9958,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9603,6 +9971,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -9613,7 +9982,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9626,6 +9995,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -9635,7 +10005,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9648,6 +10018,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -9656,7 +10027,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9669,6 +10040,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -9678,7 +10050,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9691,6 +10063,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -9701,7 +10074,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9714,6 +10087,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -9764,7 +10138,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9777,6 +10151,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -9791,7 +10166,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9804,6 +10179,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -9812,7 +10188,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9825,6 +10201,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -9838,7 +10215,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9851,6 +10228,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -9859,7 +10237,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9872,6 +10250,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -9881,7 +10260,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9894,6 +10273,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -9904,7 +10284,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9917,6 +10297,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -9926,7 +10307,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9939,6 +10320,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -9949,7 +10331,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9962,6 +10344,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -9978,7 +10361,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -9991,6 +10374,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -10000,7 +10384,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10013,6 +10397,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -10022,7 +10407,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10035,6 +10420,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -10045,7 +10431,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10058,6 +10444,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -10068,7 +10455,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10081,6 +10468,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -10091,7 +10479,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10104,6 +10492,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -10112,7 +10501,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10125,6 +10514,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -10138,7 +10528,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10151,6 +10541,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -10167,7 +10558,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10180,6 +10571,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -10212,7 +10604,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10225,6 +10617,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -10240,7 +10633,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10253,6 +10646,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -10268,7 +10662,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10281,6 +10675,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -10290,7 +10685,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10303,6 +10698,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -10322,7 +10718,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10335,6 +10731,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -10354,7 +10751,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10367,6 +10764,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -10377,7 +10775,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10390,6 +10788,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -10399,7 +10798,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10412,6 +10811,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -10422,7 +10822,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10435,6 +10835,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -10444,7 +10845,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10457,6 +10858,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -10466,7 +10868,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10479,6 +10881,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -10489,7 +10892,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10502,6 +10905,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -10511,7 +10915,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10524,6 +10928,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -10532,7 +10937,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10545,6 +10950,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -10554,7 +10960,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10567,6 +10973,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -10577,7 +10984,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10590,6 +10997,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -10634,7 +11042,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10647,6 +11055,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -10661,7 +11070,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10674,6 +11083,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -10682,7 +11092,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10695,6 +11105,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -10708,7 +11119,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10721,6 +11132,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -10729,7 +11141,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10742,6 +11154,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -10751,7 +11164,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10764,6 +11177,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -10774,7 +11188,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10787,6 +11201,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -10796,7 +11211,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10809,6 +11224,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -10819,7 +11235,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10832,6 +11248,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -10848,7 +11265,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10861,6 +11278,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -10870,7 +11288,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10883,6 +11301,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -10892,7 +11311,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10905,6 +11324,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -10915,7 +11335,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10928,6 +11348,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -10938,7 +11359,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10951,6 +11372,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -10961,7 +11383,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10974,6 +11396,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -10982,7 +11405,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -10995,6 +11418,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -11008,7 +11432,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11021,6 +11445,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -11037,7 +11462,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11050,6 +11475,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -11082,7 +11508,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11095,6 +11521,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -11110,7 +11537,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11123,6 +11550,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -11138,7 +11566,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11151,6 +11579,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -11160,7 +11589,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11173,6 +11602,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -11192,7 +11622,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11205,6 +11635,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -11224,7 +11655,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11237,6 +11668,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -11247,7 +11679,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11260,6 +11692,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -11269,7 +11702,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11282,6 +11715,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -11292,7 +11726,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11305,6 +11739,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -11314,7 +11749,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11327,6 +11762,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -11336,7 +11772,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11349,6 +11785,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -11359,7 +11796,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11372,6 +11809,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -11381,7 +11819,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11394,6 +11832,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -11402,7 +11841,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11415,6 +11854,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -11424,7 +11864,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11437,6 +11877,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -11447,7 +11888,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11460,6 +11901,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -11493,7 +11935,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11506,6 +11948,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -11520,7 +11963,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11533,6 +11976,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -11541,7 +11985,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11554,6 +11998,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -11567,7 +12012,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11580,6 +12025,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -11588,7 +12034,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11601,6 +12047,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -11610,7 +12057,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11623,6 +12070,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -11633,7 +12081,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11646,6 +12094,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -11655,7 +12104,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11668,6 +12117,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -11678,7 +12128,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11691,6 +12141,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -11707,7 +12158,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11720,6 +12171,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -11729,7 +12181,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11742,6 +12194,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -11751,7 +12204,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11764,6 +12217,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -11774,7 +12228,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11787,6 +12241,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -11797,7 +12252,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11810,6 +12265,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -11820,7 +12276,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11833,6 +12289,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -11841,7 +12298,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11854,6 +12311,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -11867,7 +12325,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11880,6 +12338,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -11896,7 +12355,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11909,6 +12368,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -11941,7 +12401,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11954,6 +12414,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -11969,7 +12430,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -11982,6 +12443,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -11997,7 +12459,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12010,6 +12472,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -12019,7 +12482,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12032,6 +12495,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -12051,7 +12515,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12064,6 +12528,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -12083,7 +12548,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12096,6 +12561,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -12106,7 +12572,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12119,6 +12585,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -12128,7 +12595,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12141,6 +12608,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -12151,7 +12619,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12164,6 +12632,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -12173,7 +12642,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12186,6 +12655,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -12195,7 +12665,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12208,6 +12678,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -12218,7 +12689,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12231,6 +12702,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -12240,7 +12712,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12253,6 +12725,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -12261,7 +12734,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12274,6 +12747,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -12283,7 +12757,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12296,6 +12770,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -12306,7 +12781,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12319,6 +12794,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. @@ -12363,7 +12839,7 @@

Method Details

"formattedType": "A String", # Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. "metadata": { # Metadata about a field. # Metadata about the address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12376,6 +12852,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "poBox": "A String", # The P.O. box of the address. @@ -12390,7 +12867,7 @@

Method Details

{ # A person's age range. "ageRange": "A String", # The age range. "metadata": { # Metadata about a field. # Metadata about the age range. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12403,6 +12880,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -12411,7 +12889,7 @@

Method Details

{ # A person's short biography. "contentType": "A String", # The content type of the biography. "metadata": { # Metadata about a field. # Metadata about the biography. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12424,6 +12902,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The short biography. @@ -12437,7 +12916,7 @@

Method Details

"year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. }, "metadata": { # Metadata about a field. # Metadata about the birthday. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12450,6 +12929,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "text": "A String", # A free-form string representing the user's birthday. @@ -12458,7 +12938,7 @@

Method Details

"braggingRights": [ # **DEPRECATED**: No data will be returned The person's bragging rights. { # **DEPRECATED**: No data will be returned A person's bragging rights. "metadata": { # Metadata about a field. # Metadata about the bragging rights. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12471,6 +12951,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The bragging rights; for example, `climbed mount everest`. @@ -12480,7 +12961,7 @@

Method Details

{ # A person's calendar URL. "formattedType": "A String", # Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the calendar URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12493,6 +12974,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work` @@ -12503,7 +12985,7 @@

Method Details

{ # Arbitrary client data that is populated by clients. Duplicate keys and values are allowed. "key": "A String", # The client specified key of the client data. "metadata": { # Metadata about a field. # Metadata about the client data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12516,6 +12998,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The client specified value of the client data. @@ -12525,7 +13008,7 @@

Method Details

{ # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about. "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. "metadata": { # Metadata about a field. # Metadata about the cover photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12538,6 +13021,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the cover photo. @@ -12548,7 +13032,7 @@

Method Details

"displayName": "A String", # The display name of the email. "formattedType": "A String", # Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the email address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12561,6 +13045,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other` @@ -12577,7 +13062,7 @@

Method Details

}, "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the event. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12590,6 +13075,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other` @@ -12599,7 +13085,7 @@

Method Details

{ # An identifier from an external entity related to the person. "formattedType": "A String", # Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the external ID. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12612,6 +13098,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization` @@ -12621,7 +13108,7 @@

Method Details

"fileAses": [ # The person's file-ases. { # The name that should be used to sort the person in a list. "metadata": { # Metadata about a field. # Metadata about the file-as. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12634,6 +13121,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The file-as value @@ -12644,7 +13132,7 @@

Method Details

"addressMeAs": "A String", # The type of pronouns that should be used to address the person. The value can be custom or one of these predefined values: * `male` * `female` * `other` "formattedValue": "A String", # Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized. "metadata": { # Metadata about a field. # Metadata about the gender. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12657,6 +13145,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified` @@ -12667,7 +13156,7 @@

Method Details

"formattedProtocol": "A String", # Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "formattedType": "A String", # Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the IM client. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12680,6 +13169,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "protocol": "A String", # The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` @@ -12690,7 +13180,7 @@

Method Details

"interests": [ # The person's interests. { # One of the person's interests. "metadata": { # Metadata about a field. # Metadata about the interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12703,6 +13193,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The interest; for example, `stargazing`. @@ -12711,7 +13202,7 @@

Method Details

"locales": [ # The person's locale preferences. { # A person's locale preference. "metadata": { # Metadata about a field. # Metadata about the locale. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12724,6 +13215,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. @@ -12737,7 +13229,7 @@

Method Details

"floor": "A String", # The floor name or number. "floorSection": "A String", # The floor section in `floor_name`. "metadata": { # Metadata about a field. # Metadata about the location. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12750,6 +13242,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp` @@ -12766,7 +13259,7 @@

Method Details

"inViewerDomain": True or False, # True if the person is in the viewer's Google Workspace domain. }, "metadata": { # Metadata about a field. # Metadata about the membership. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12779,6 +13272,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, }, @@ -12811,7 +13305,7 @@

Method Details

{ # A person's miscellaneous keyword. "formattedType": "A String", # Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the miscellaneous keyword. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12824,6 +13318,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The miscellaneous keyword type. @@ -12839,7 +13334,7 @@

Method Details

"honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.` "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.` "metadata": { # Metadata about a field. # Metadata about the name. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12852,6 +13347,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "middleName": "A String", # The middle name(s). @@ -12867,7 +13363,7 @@

Method Details

"nicknames": [ # The person's nicknames. { # A person's nickname. "metadata": { # Metadata about a field. # Metadata about the nickname. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12880,6 +13376,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the nickname. @@ -12889,7 +13386,7 @@

Method Details

"occupations": [ # The person's occupations. { # A person's occupation. "metadata": { # Metadata about a field. # Metadata about the occupation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12902,6 +13399,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The occupation; for example, `carpenter`. @@ -12921,7 +13419,7 @@

Method Details

"jobDescription": "A String", # The person's job description at the organization. "location": "A String", # The location of the organization office the person works at. "metadata": { # Metadata about a field. # Metadata about the organization. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12934,6 +13432,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "name": "A String", # The name of the organization. @@ -12953,7 +13452,7 @@

Method Details

"canonicalForm": "A String", # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. "formattedType": "A String", # Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the phone number. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12966,6 +13465,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` @@ -12976,7 +13476,7 @@

Method Details

{ # A person's photo. A picture shown next to the person's name to help others recognize the person. "default": True or False, # True if the photo is a default photo; false if the photo is a user-provided photo. "metadata": { # Metadata about a field. # Metadata about the photo. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -12989,6 +13489,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "url": "A String", # The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50 @@ -12998,7 +13499,7 @@

Method Details

{ # A person's relation to another person. "formattedType": "A String", # Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relation. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13011,6 +13512,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "person": "A String", # The name of the other person this relation refers to. @@ -13021,7 +13523,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship interest . "formattedValue": "A String", # Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. "metadata": { # Metadata about a field. # Metadata about the relationship interest. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13034,6 +13536,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking` @@ -13043,7 +13546,7 @@

Method Details

{ # **DEPRECATED**: No data will be returned A person's relationship status. "formattedValue": "A String", # Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the relationship status. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13056,6 +13559,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` @@ -13065,7 +13569,7 @@

Method Details

{ # **DEPRECATED**: Please use `person.locations` instead. A person's past or current residence. "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence. "metadata": { # Metadata about a field. # Metadata about the residence. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13078,6 +13582,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The address of the residence. @@ -13088,7 +13593,7 @@

Method Details

{ # A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet. "formattedType": "A String", # Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the SIP address. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13101,6 +13606,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other` @@ -13110,7 +13616,7 @@

Method Details

"skills": [ # The person's skills. { # A skill that the person has. "metadata": { # Metadata about a field. # Metadata about the skill. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13123,6 +13629,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The skill; for example, `underwater basket weaving`. @@ -13131,7 +13638,7 @@

Method Details

"taglines": [ # Output only. **DEPRECATED**: No data will be returned The person's taglines. { # **DEPRECATED**: No data will be returned A brief one-line description of the person. "metadata": { # Metadata about a field. # Metadata about the tagline. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13144,6 +13651,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The tagline. @@ -13153,7 +13661,7 @@

Method Details

{ # A person's associated URLs. "formattedType": "A String", # Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. "metadata": { # Metadata about a field. # Metadata about the URL. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13166,6 +13674,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "type": "A String", # The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other` @@ -13176,7 +13685,7 @@

Method Details

{ # Arbitrary user data that is populated by the end users. "key": "A String", # The end user specified key of the user defined data. "metadata": { # Metadata about a field. # Metadata about the user defined data. - "primary": True or False, # True if the field is the primary field; false if the field is a secondary field. + "primary": True or False, # True if the field is the primary field for the person. "source": { # The source of a field. # The source of the field. "etag": "A String", # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. "id": "A String", # The unique identifier within the source type generated by the server. @@ -13189,6 +13698,7 @@

Method Details

"type": "A String", # The source type. "updateTime": "A String", # Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source. }, + "sourcePrimary": True or False, # True if the field is the primary field for the source. "verified": True or False, # Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. }, "value": "A String", # The end user specified value of the user defined data. diff --git a/docs/dyn/privateca_v1.projects.locations.caPools.certificates.html b/docs/dyn/privateca_v1.projects.locations.caPools.certificates.html index c09a1465477..d3f2223a75b 100644 --- a/docs/dyn/privateca_v1.projects.locations.caPools.certificates.html +++ b/docs/dyn/privateca_v1.projects.locations.caPools.certificates.html @@ -349,7 +349,7 @@

Method Details

certificateId: string, Optional. It must be unique within a location and match the regular expression `[a-zA-Z0-9_-]{1,63}`. This field is required when using a CertificateAuthority in the Enterprise CertificateAuthority.Tier, but is optional and its value is ignored otherwise. issuingCertificateAuthorityId: string, Optional. The resource ID of the CertificateAuthority that should issue the certificate. This optional field will ignore the load-balancing scheme of the Pool and directly issue the certificate from the CA with the specified ID, contained in the same CaPool referenced by `parent`. Per-CA quota rules apply. If left empty, a CertificateAuthority will be chosen from the CaPool by the service. For example, to issue a Certificate from a Certificate Authority with resource name "projects/my-project/locations/us-central1/caPools/my-pool/certificateAuthorities/my-ca", you can set the parent to "projects/my-project/locations/us-central1/caPools/my-pool" and the issuing_certificate_authority_id to "my-ca". - requestId: string, Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he 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). + requestId: string, Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000). validateOnly: boolean, Optional. If this is true, no Certificate resource will be persisted regardless of the CaPool's tier, and the returned Certificate will not contain the pem_certificate field. x__xgafv: string, V1 error format. Allowed values diff --git a/docs/dyn/privateca_v1beta1.projects.locations.certificateAuthorities.html b/docs/dyn/privateca_v1beta1.projects.locations.certificateAuthorities.html index ccef4f80737..c8ce8513101 100644 --- a/docs/dyn/privateca_v1beta1.projects.locations.certificateAuthorities.html +++ b/docs/dyn/privateca_v1beta1.projects.locations.certificateAuthorities.html @@ -143,7 +143,7 @@

Method Details

"pemCaCertificate": "A String", # Required. The signed CA certificate issued from FetchCertificateAuthorityCsrResponse.pem_csr. "requestId": "A String", # Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he 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). "subordinateConfig": { # Describes a subordinate CA's issuers. This is either a resource path to a known issuing CertificateAuthority, or a PEM issuer certificate chain. # Required. Must include information about the issuer of 'pem_ca_certificate', and any further issuers until the self-signed CA. - "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. + "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. "pemIssuerChain": { # This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons. # Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself. "pemCertificates": [ # Required. Expected to be in leaf-to-root order according to RFC 5246. "A String", @@ -598,7 +598,7 @@

Method Details

], "state": "A String", # Output only. The State for this CertificateAuthority. "subordinateConfig": { # Describes a subordinate CA's issuers. This is either a resource path to a known issuing CertificateAuthority, or a PEM issuer certificate chain. # Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate. - "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. + "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. "pemIssuerChain": { # This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons. # Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself. "pemCertificates": [ # Required. Expected to be in leaf-to-root order according to RFC 5246. "A String", @@ -1161,7 +1161,7 @@

Method Details

], "state": "A String", # Output only. The State for this CertificateAuthority. "subordinateConfig": { # Describes a subordinate CA's issuers. This is either a resource path to a known issuing CertificateAuthority, or a PEM issuer certificate chain. # Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate. - "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. + "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. "pemIssuerChain": { # This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons. # Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself. "pemCertificates": [ # Required. Expected to be in leaf-to-root order according to RFC 5246. "A String", @@ -1645,7 +1645,7 @@

Method Details

], "state": "A String", # Output only. The State for this CertificateAuthority. "subordinateConfig": { # Describes a subordinate CA's issuers. This is either a resource path to a known issuing CertificateAuthority, or a PEM issuer certificate chain. # Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate. - "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. + "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. "pemIssuerChain": { # This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons. # Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself. "pemCertificates": [ # Required. Expected to be in leaf-to-root order according to RFC 5246. "A String", @@ -2090,7 +2090,7 @@

Method Details

], "state": "A String", # Output only. The State for this CertificateAuthority. "subordinateConfig": { # Describes a subordinate CA's issuers. This is either a resource path to a known issuing CertificateAuthority, or a PEM issuer certificate chain. # Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate. - "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. + "certificateAuthority": "A String", # Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`. "pemIssuerChain": { # This message describes a subordinate CA's issuer certificate chain. This wrapper exists for compatibility reasons. # Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself. "pemCertificates": [ # Required. Expected to be in leaf-to-root order according to RFC 5246. "A String", diff --git a/docs/dyn/reseller_v1.customers.html b/docs/dyn/reseller_v1.customers.html index ccfb5e46416..85b8c6ca60b 100644 --- a/docs/dyn/reseller_v1.customers.html +++ b/docs/dyn/reseller_v1.customers.html @@ -79,16 +79,16 @@

Instance Methods

Close httplib2 connections.

get(customerId, x__xgafv=None)

-

Get a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).

+

Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).

insert(body=None, customerAuthToken=None, x__xgafv=None)

-

Order a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).

+

Orders a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).

patch(customerId, body=None, x__xgafv=None)

-

Update a customer account's settings. This method supports patch semantics.

+

Updates a customer account's settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `"team"` customer can verify their domain and become `customerType = "domain"`. For more information, see [Verify your domain to unlock Essentials features](https://support.google.com/a/answer/9122284).

update(customerId, body=None, x__xgafv=None)

-

Update a customer account's settings. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).

+

Updates a customer account's settings. You cannot update `customerType` via the Reseller API, but a `"team"` customer can verify their domain and become `customerType = "domain"`. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).

Method Details

close() @@ -97,7 +97,7 @@

Method Details

get(customerId, x__xgafv=None) -
Get a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).
+  
Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -110,11 +110,11 @@ 

Method Details

An object of the form: { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address. - "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`. + "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer. "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer. "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified. "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google. - "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN. + "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479). "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer` "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid. "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters. @@ -130,7 +130,7 @@

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. }
@@ -138,18 +138,18 @@

Method Details

insert(body=None, customerAuthToken=None, x__xgafv=None) -
Order a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).
+  
Orders a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).
 
 Args:
   body: object, The request body.
     The object takes the form of:
 
 { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
-  "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`.
+  "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer.
   "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
   "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
   "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
-  "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN.
+  "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
   "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer`
   "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid.
   "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
@@ -165,7 +165,7 @@ 

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. } @@ -180,11 +180,11 @@

Method Details

An object of the form: { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address. - "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`. + "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer. "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer. "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified. "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google. - "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN. + "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479). "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer` "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid. "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters. @@ -200,7 +200,7 @@

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. }
@@ -208,7 +208,7 @@

Method Details

patch(customerId, body=None, x__xgafv=None) -
Update a customer account's settings. This method supports patch semantics.
+  
Updates a customer account's settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `"team"` customer can verify their domain and become `customerType = "domain"`. For more information, see [Verify your domain to unlock Essentials features](https://support.google.com/a/answer/9122284).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -216,11 +216,11 @@ 

Method Details

The object takes the form of: { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address. - "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`. + "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer. "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer. "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified. "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google. - "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN. + "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479). "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer` "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid. "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters. @@ -236,7 +236,7 @@

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. } @@ -250,11 +250,11 @@

Method Details

An object of the form: { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address. - "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`. + "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer. "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer. "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified. "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google. - "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN. + "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479). "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer` "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid. "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters. @@ -270,7 +270,7 @@

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. }
@@ -278,7 +278,7 @@

Method Details

update(customerId, body=None, x__xgafv=None) -
Update a customer account's settings. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).
+  
Updates a customer account's settings. You cannot update `customerType` via the Reseller API, but a `"team"` customer can verify their domain and become `customerType = "domain"`. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -286,11 +286,11 @@ 

Method Details

The object takes the form of: { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address. - "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`. + "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer. "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer. "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified. "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google. - "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN. + "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479). "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer` "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid. "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters. @@ -306,7 +306,7 @@

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. } @@ -320,11 +320,11 @@

Method Details

An object of the form: { # When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address. - "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`. + "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new "domain" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a "team" customer. "customerDomain": "A String", # The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer. "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified. "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google. - "customerType": "A String", # The type of the customer (DOMAIN or TEAM), default is DOMAIN. + "customerType": "A String", # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479). "kind": "reseller#customer", # Identifies the resource as a customer. Value: `reseller#customer` "phoneNumber": "A String", # Customer contact phone number. Must start with "+" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, "123". This field is silently ignored if invalid. "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters. @@ -340,7 +340,7 @@

Method Details

"region": "A String", # An example of a `region` value is `CA` for the state of California. }, "primaryAdmin": { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer. - "primaryEmail": "A String", # Primary admin's domained email This email's domain will be used to create TEAM customer + "primaryEmail": "A String", # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer. }, "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console. }
diff --git a/docs/dyn/reseller_v1.subscriptions.html b/docs/dyn/reseller_v1.subscriptions.html index fd4d83ae943..e00164a3b9e 100644 --- a/docs/dyn/reseller_v1.subscriptions.html +++ b/docs/dyn/reseller_v1.subscriptions.html @@ -79,28 +79,28 @@

Instance Methods

Activates a subscription previously suspended by the reseller. If you did not suspend the customer subscription and it is suspended for any other reason, such as for abuse or a pending ToS acceptance, this call will not reactivate the customer subscription.

changePlan(customerId, subscriptionId, body=None, x__xgafv=None)

-

Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).

+

Updates a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).

changeRenewalSettings(customerId, subscriptionId, body=None, x__xgafv=None)

-

Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).

+

Updates a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).

changeSeats(customerId, subscriptionId, body=None, x__xgafv=None)

-

Update a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription’s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).

+

Updates a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription’s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).

close()

Close httplib2 connections.

delete(customerId, subscriptionId, deletionType, x__xgafv=None)

-

Cancel, suspend, or transfer a subscription to direct.

+

Cancels, suspends, or transfers a subscription to direct.

get(customerId, subscriptionId, x__xgafv=None)

-

Get a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).

+

Gets a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).

insert(customerId, body=None, customerAuthToken=None, x__xgafv=None)

-

Create or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).

+

Creates or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).

list(customerAuthToken=None, customerId=None, customerNamePrefix=None, maxResults=None, pageToken=None, x__xgafv=None)

-

List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).

+

Lists of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).

list_next(previous_request, previous_response)

Retrieves the next page of results.

@@ -161,7 +161,7 @@

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -174,7 +174,7 @@

Method Details

changePlan(customerId, subscriptionId, body=None, x__xgafv=None) -
Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).
+  
Updates a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -238,7 +238,7 @@ 

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -251,7 +251,7 @@

Method Details

changeRenewalSettings(customerId, subscriptionId, body=None, x__xgafv=None) -
Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).
+  
Updates a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -307,7 +307,7 @@ 

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -320,7 +320,7 @@

Method Details

changeSeats(customerId, subscriptionId, body=None, x__xgafv=None) -
Update a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription’s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).
+  
Updates a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription’s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -378,7 +378,7 @@ 

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -396,7 +396,7 @@

Method Details

delete(customerId, subscriptionId, deletionType, x__xgafv=None) -
Cancel, suspend, or transfer a subscription to direct.
+  
Cancels, suspends, or transfers a subscription to direct.
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -415,7 +415,7 @@ 

Method Details

get(customerId, subscriptionId, x__xgafv=None) -
Get a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).
+  
Gets a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -463,7 +463,7 @@ 

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -476,7 +476,7 @@

Method Details

insert(customerId, body=None, customerAuthToken=None, x__xgafv=None) -
Create or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).
+  
Creates or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).
 
 Args:
   customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a `customerId` as a key for persistent data. If the domain name for a `customerId` is changed, the Google system automatically updates. (required)
@@ -518,7 +518,7 @@ 

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -572,7 +572,7 @@

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -585,7 +585,7 @@

Method Details

list(customerAuthToken=None, customerId=None, customerNamePrefix=None, maxResults=None, pageToken=None, x__xgafv=None) -
List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).
+  
Lists of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).
 
 Args:
   customerAuthToken: string, The `customerAuthToken` query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.
@@ -640,7 +640,7 @@ 

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -717,7 +717,7 @@

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, @@ -778,7 +778,7 @@

Method Details

"A String", ], "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer. - "currentLegacySkuId": "A String", # Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in. + "currentLegacySkuId": "A String", # The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer. "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats. "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format. }, diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html index f6b2fa5aa64..de0c0c88dae 100644 --- a/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html +++ b/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html @@ -74,6 +74,9 @@

Retail API . projects . locations . catalogs . branches . products

Instance Methods

+

+ addFulfillmentPlaces(product, body=None, x__xgafv=None)

+

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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

close()

Close httplib2 connections.

@@ -89,10 +92,69 @@

Instance Methods

import_(parent, body=None, x__xgafv=None)

Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.

+

+ list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, x__xgafv=None)

+

Gets a list of Products.

+

+ list_next(previous_request, previous_response)

+

Retrieves the next page of results.

patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)

Updates a Product.

+

+ removeFulfillmentPlaces(product, body=None, x__xgafv=None)

+

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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ setInventory(name, body=None, x__xgafv=None)

+

Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

Method Details

+
+ addFulfillmentPlaces(product, body=None, x__xgafv=None) +
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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  product: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for AddFulfillmentPlaces method.
+  "addTime": "A String", # The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.
+  "allowMissing": True or False, # If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "placeIds": [ # Required. The IDs for this type, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.
+    "A String",
+  ],
+  "type": "A String", # Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+
close()
Close httplib2 connections.
@@ -108,23 +170,60 @@

Method Details

The object takes the form of: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -133,20 +232,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], } productId: string, Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. @@ -159,23 +302,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -184,20 +364,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }
@@ -234,23 +458,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -259,20 +520,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }
@@ -291,14 +596,19 @@

Method Details

}, "inputConfig": { # The input config source for products. # Required. The desired input location of the data. "bigQuerySource": { # BigQuery source import data from. # BigQuery input source. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters. "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory. + "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. + "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. + "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. + }, "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request. "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters. }, "gcsSource": { # Google Cloud Storage location for input content. format. # Google Cloud Storage location for the input content. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "inputUris": [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions. "A String", ], @@ -306,23 +616,60 @@

Method Details

"productInlineSource": { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products. "products": [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items. { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -331,24 +678,71 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }, ], }, }, + "notificationPubsubTopic": "A String", # Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "reconciliationMode": "A String", # The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL. + "requestId": "A String", # Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: "[a-zA-Z0-9_]+". This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. "updateMask": "A String", # Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields. } @@ -381,6 +775,167 @@

Method Details

}
+
+ list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, x__xgafv=None) +
Gets a list of Products.
+
+Args:
+  parent: string, Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned. (required)
+  filter: string, A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = "some_product_id"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = "some_product_id"` * List Products with a partibular type. For example: `type = "PRIMARY"` `type = "VARIANT"` `type = "COLLECTION"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.
+  pageSize: integer, Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.
+  pageToken: string, A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  readMask: string, The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If "*" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ProductService.ListProducts method.
+  "nextPageToken": "A String", # A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  "products": [ # The Products.
+    { # Product captures all metadata information of items to be recommended or searched.
+      "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+        "a_key": { # A custom attribute that is not explicitly modeled in Product.
+          "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+          "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            3.14,
+          ],
+          "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+          "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+        },
+      },
+      "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+        "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+          "A String",
+        ],
+        "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+          "A String",
+        ],
+      },
+      "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+      "availableQuantity": 42, # The available quantity of the item.
+      "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+      "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+        "A String",
+      ],
+      "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+        "A String",
+      ],
+      "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+        "A String",
+      ],
+      "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "A String",
+        ],
+        "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "A String",
+        ],
+      },
+      "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+        "A String",
+      ],
+      "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+      "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+      "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+        { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+          "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+          "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+      "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+      "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+      "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+        { # Product thumbnail/detail image.
+          "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+      "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+      "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+        "A String",
+      ],
+      "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+      "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+        "A String",
+      ],
+      "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+        "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+        "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+        "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+        "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+        "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+        "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+          "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+          "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+        },
+      },
+      "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+      "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+        { # Promotion information.
+          "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+        },
+      ],
+      "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+      "rating": { # The rating of a Product. # The rating of this product.
+        "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+        "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+          42,
+        ],
+      },
+      "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+      "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+        "A String",
+      ],
+      "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+        "A String",
+      ],
+      "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+      "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+      "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+      "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+        # Object with schema name: GoogleCloudRetailV2Product
+      ],
+    },
+  ],
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+
patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)
Updates a Product.
@@ -391,23 +946,60 @@ 

Method Details

The object takes the form of: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -416,20 +1008,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], } allowMissing: boolean, If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored. @@ -443,23 +1079,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -468,20 +1141,277 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], +}
+
+ +
+ removeFulfillmentPlaces(product, body=None, x__xgafv=None) +
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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  product: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for RemoveFulfillmentPlaces method.
+  "allowMissing": True or False, # If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "placeIds": [ # Required. The IDs for this type, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+    "A String",
+  ],
+  "removeTime": "A String", # The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.
+  "type": "A String", # Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ +
+ setInventory(name, body=None, x__xgafv=None) +
Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  name: string, Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SetInventory method.
+  "allowMissing": True or False, # If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "inventory": { # Product captures all metadata information of items to be recommended or searched. # Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead.
+    "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+      "a_key": { # A custom attribute that is not explicitly modeled in Product.
+        "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+        "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          3.14,
+        ],
+        "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+        "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          "A String",
+        ],
+      },
+    },
+    "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+      "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+        "A String",
+      ],
+      "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+        "A String",
+      ],
+    },
+    "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+    "availableQuantity": 42, # The available quantity of the item.
+    "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+    "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+      "A String",
+    ],
+    "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+      "A String",
+    ],
+    "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+      "A String",
+    ],
+    "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+      "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "A String",
+      ],
+      "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "A String",
+      ],
+    },
+    "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+      "A String",
+    ],
+    "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+    "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+    "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+      { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+        "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+          "A String",
+        ],
+        "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+      },
+    ],
+    "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+    "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+    "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      { # Product thumbnail/detail image.
+        "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+        "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      },
+    ],
+    "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+    "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+      "A String",
+    ],
+    "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+    "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+      "A String",
+    ],
+    "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+      "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+      "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+      "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+      "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+      "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+      "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+      "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+        "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+          "exclusiveMaximum": 3.14, # Exclusive upper bound.
+          "exclusiveMinimum": 3.14, # Exclusive lower bound.
+          "maximum": 3.14, # Inclusive upper bound.
+          "minimum": 3.14, # Inclusive lower bound.
+        },
+        "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+          "exclusiveMaximum": 3.14, # Exclusive upper bound.
+          "exclusiveMinimum": 3.14, # Exclusive lower bound.
+          "maximum": 3.14, # Inclusive upper bound.
+          "minimum": 3.14, # Inclusive lower bound.
+        },
+      },
+    },
+    "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+    "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+      { # Promotion information.
+        "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+      },
+    ],
+    "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+    "rating": { # The rating of a Product. # The rating of this product.
+      "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+      "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+        42,
+      ],
+    },
+    "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+    "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+      "A String",
+    ],
+    "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+      "A String",
+    ],
+    "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+    "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+    "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+    "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+    "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+      # Object with schema name: GoogleCloudRetailV2Product
+    ],
+  },
+  "setMask": "A String", # Indicates which inventory fields in the provided Product to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.
+  "setTime": "A String", # The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
 }
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.completionData.html b/docs/dyn/retail_v2.projects.locations.catalogs.completionData.html new file mode 100644 index 00000000000..d5500972c6c --- /dev/null +++ b/docs/dyn/retail_v2.projects.locations.catalogs.completionData.html @@ -0,0 +1,145 @@ + + + +

Retail API . projects . locations . catalogs . completionData

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ import_(parent, body=None, x__xgafv=None)

+

Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ import_(parent, body=None, x__xgafv=None) +
Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  parent: string, Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for ImportCompletionData methods.
+  "inputConfig": { # The input config source for completion data. # Required. The desired input location of the data.
+    "bigQuerySource": { # BigQuery source import data from. # Required. BigQuery input source. Add the IAM permission “BigQuery Data Viewer” for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown.
+      "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
+      "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.
+        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
+        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.
+      "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+  },
+  "notificationPubsubTopic": "A String", # Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.html b/docs/dyn/retail_v2.projects.locations.catalogs.html index a917257f1bc..5b7a9fee13c 100644 --- a/docs/dyn/retail_v2.projects.locations.catalogs.html +++ b/docs/dyn/retail_v2.projects.locations.catalogs.html @@ -79,6 +79,11 @@

Instance Methods

Returns the branches Resource.

+

+ completionData() +

+

Returns the completionData Resource.

+

operations()

@@ -97,6 +102,12 @@

Instance Methods

close()

Close httplib2 connections.

+

+ completeQuery(catalog, dataset=None, deviceType=None, languageCodes=None, maxSuggestions=None, query=None, visitorId=None, x__xgafv=None)

+

Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ getDefaultBranch(catalog, x__xgafv=None)

+

Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

Lists all the Catalogs associated with the project.

@@ -106,12 +117,83 @@

Instance Methods

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates the Catalogs.

+

+ setDefaultBranch(catalog, body=None, x__xgafv=None)

+

Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using "default_branch" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

Method Details

close()
Close httplib2 connections.
+
+ completeQuery(catalog, dataset=None, deviceType=None, languageCodes=None, maxSuggestions=None, query=None, visitorId=None, x__xgafv=None) +
Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  dataset: string, Determines which dataset to use for fetching completion. "user-data" will use the imported dataset through ImportCompletionData. "cloud-retail" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the "user-data". Current supported values: * user-data * cloud-retail This option is not automatically enabled. Before using cloud-retail, contact retail-search-support@google.com first.
+  deviceType: string, The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. DESKTOP, MOBILE. If it is empty, the suggestions are across all device types. Supported formats: * UNKNOWN_DEVICE_TYPE * DESKTOP * MOBILE * A customized string starts with OTHER_, e.g. OTHER_IPHONE.
+  languageCodes: string, The list of languages of the query. This is the BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only "en-US" is currently supported. (repeated)
+  maxSuggestions: integer, Completion max suggestions. The maximum allowed max suggestions is 20. The default value is 20.
+  query: string, Required. The query used to generate suggestions. The maximum number of allowed characters is 255.
+  visitorId: string, A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response of the auto-complete query.
+  "attributionToken": "A String", # A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.
+  "completionResults": [ # Results of the matching suggestions. The result list is ordered and the first result is top suggestion.
+    { # Resource that represents completion results.
+      "attributes": { # Additional custom attributes ingested through BigQuery.
+        "a_key": { # A custom attribute that is not explicitly modeled in Product.
+          "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+          "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            3.14,
+          ],
+          "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+          "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+        },
+      },
+      "suggestion": "A String", # The suggestion for the query.
+    },
+  ],
+  "recentSearchResults": [ # Matched recent searches of this user. This field is a restricted feature. Contact Retail Support (retail-search-support@google.com) 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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.
+    { # Recent search of this user.
+      "recentSearch": "A String", # The recent search query.
+    },
+  ],
+}
+
+ +
+ getDefaultBranch(catalog, x__xgafv=None) +
Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message of CatalogService.GetDefaultBranch.
+  "branch": "A String", # Full resource name of the branch id currently set as default branch.
+  "note": "A String", # This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.
+  "setTime": "A String", # The time when this branch is set to default.
+}
+
+
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
Lists all the Catalogs associated with the project.
@@ -194,4 +276,30 @@ 

Method Details

}
+
+ setDefaultBranch(catalog, body=None, x__xgafv=None) +
Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using "default_branch" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message to set a specified branch as new default_branch.
+  "branchId": "A String", # The final component of the resource name of a branch. This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
+  "note": "A String", # Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}
+
+ \ No newline at end of file diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.placements.html b/docs/dyn/retail_v2.projects.locations.catalogs.placements.html index c5cf29e6f49..d9258cdf065 100644 --- a/docs/dyn/retail_v2.projects.locations.catalogs.placements.html +++ b/docs/dyn/retail_v2.projects.locations.catalogs.placements.html @@ -80,6 +80,12 @@

Instance Methods

predict(placement, body=None, x__xgafv=None)

Makes a recommendation prediction.

+

+ search(placement, body=None, x__xgafv=None)

+

Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ search_next(previous_request, previous_response)

+

Retrieves the next page of results.

Method Details

close() @@ -108,21 +114,31 @@

Method Details

"userEvent": { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. # Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -130,23 +146,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -155,20 +208,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -181,12 +278,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -219,4 +317,268 @@

Method Details

}
+
+ search(placement, body=None, x__xgafv=None) +
Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  placement: string, Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the set of models that will be used to make the search. We currently support one placement with the following ID: * `default_search`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SearchService.Search method.
+  "boostSpec": { # Boost specification to boost certain items. # Boost specification to boost certain products. See more details at this [user guide](/retail/private/docs/boosting).
+    "conditionBoostSpecs": [ # Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.
+      { # Boost applies to products which match a condition.
+        "boost": 3.14, # Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
+        "condition": "A String", # An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
+      },
+    ],
+  },
+  "branch": "A String", # 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.
+  "canonicalFilter": "A String", # 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.
+  "dynamicFacetSpec": { # The specifications of dynamically generated facets. # The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature.
+    "mode": "A String", # Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.
+  },
+  "facetSpecs": [ # Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
+    { # A facet specification to perform faceted search.
+      "enableDynamicPosition": True or False, # 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.
+      "excludedFilterKeys": [ # List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet "Red" and 200 products with color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")" and have "colorFamilies" as FacetKey.key will by default return the "Red" with count 100. If this field contains "colorFamilies", then the query returns both the "Red" with count 100 and "Blue" with count 200, because the "colorFamilies" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
+        "A String",
+      ],
+      "facetKey": { # Specifies how a facet is computed. # Required. The facet key specification.
+        "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.
+          "A String",
+        ],
+        "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 30.
+          { # A floating point interval.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+        ],
+        "key": "A String", # Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = *# The Product.brands. * "brands"; *# The Product.categories. * "categories"; *# The Audience.genders. * | "genders"; *# The Audience.age_groups. * | "ageGroups"; *# The Product.availability. Value is one of * *# "IN_STOCK", "OUT_OF_STOCK", PREORDER", "BACKORDER". * | "availability"; *# The ColorInfo.color_families. * | "colorFamilies"; *# The ColorInfo.colors. * | "colors"; *# The Product.sizes. * | "sizes"; *# The Product.materials. * | "materials"; *# The Product.patterns. * | "patterns"; *# The Product.conditions. * | "conditions"; *# The textual custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are textual. * *# map. * | "attributes.key"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.PICKUP_IN_STORE. * | "pickupInStore"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SHIP_TO_STORE. * | "shipToStore"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | "sameDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * | "nextDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_1. * | "customFulfillment1"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | "customFulfillment2"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | "customFulfillment3"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_4. * | "customFulfillment4"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | "customFulfillment5"; * numerical_field = *# The PriceInfo.price. * "price"; *# The discount. Computed by (original_price-price)/price * "discount"; *# The Rating.average_rating. * "rating"; *# The Rating.rating_count. * "ratingCount"; *# The numerical custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are numerical. * | "attributes.key";
+        "orderBy": "A String", # The order in which Facet.values are returned. Allowed values are: * "count desc", which means order by Facet.FacetValue.count descending. * "value desc", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.
+        "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.
+          "A String",
+        ],
+        "query": "A String", # 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, FacetValue.value will be always "1" and FacetValue.count will be the number of results that matches 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".
+        "restrictedValues": [ # Only get facet for the given restricted values. For example, when using "pickupInStore" as key and set restricted values to ["store123", "store456"], only facets for "store123" and "store456" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5
+          "A String",
+        ],
+      },
+      "limit": 42, # Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.
+    },
+  ],
+  "filter": "A String", # 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](/retail/private/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+  "offset": 42, # A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.
+  "orderBy": "A String", # 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](/retail/private/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+  "pageCategories": [ # The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
+    "A String",
+  ],
+  "pageSize": 42, # Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.
+  "pageToken": "A String", # A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  "query": "A String", # Raw search query.
+  "queryExpansionSpec": { # Specification to determine under which conditions query expansion should occur. # The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](/retail/private/docs/result-size#query_expansion).
+    "condition": "A String", # The condition under which query expansion should occur. Default to Condition.DISABLED.
+  },
+  "userInfo": { # Information of an end user. # User information.
+    "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  "variantRollupKeys": [ # The keys to fetch and rollup the matching variant Products attributes. The attributes from all the matching variant Products are merged and de-duplicated. Notice that rollup variant Products attributes will lead to extra query latency. Maximum number of keys is 10. For Product.fulfillment_info, a fulfillment type and a fulfillment ID must be provided in the format of "fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is fulfillment type and "store123" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. * shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * customFulfillment1.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. * customFulfillment3.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. * customFulfillment5.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+    "A String",
+  ],
+  "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for SearchService.Search method.
+  "attributionToken": "A String", # A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.
+  "correctedQuery": "A String", # If spell correction applies, the corrected query. Otherwise, empty.
+  "facets": [ # Results of facets requested by user.
+    { # A facet result.
+      "dynamicFacet": True or False, # Whether the facet is dynamically generated.
+      "key": "A String", # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
+      "values": [ # The facet values for this field.
+        { # A facet value which contains value names and their count.
+          "count": "A String", # Number of items that have this facet value.
+          "interval": { # A floating point interval. # Interval value for a facet, such as [10, 20) for facet "price".
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+          "value": "A String", # Text value of a facet, such as "Black" for facet "colorFamilies".
+        },
+      ],
+    },
+  ],
+  "nextPageToken": "A String", # A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  "queryExpansionInfo": { # Information describing query expansion including whether expansion has occurred. # Query expansion information for the returned results.
+    "expandedQuery": True or False, # Bool describing whether query expansion has occurred.
+  },
+  "redirectUri": "A String", # The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.
+  "results": [ # A list of matched items. The order represents the ranking.
+    { # Represents the search results.
+      "id": "A String", # Product.id of the searched Product.
+      "matchingVariantCount": 42, # The count of matched variant Products.
+      "matchingVariantFields": { # If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key "sku1" with field mask "products.color_info" indicates there is a match between "sku1" ColorInfo and the query.
+        "a_key": "A String",
+      },
+      "product": { # Product captures all metadata information of items to be recommended or searched. # The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching "shoe" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless.
+        "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+          "a_key": { # A custom attribute that is not explicitly modeled in Product.
+            "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+            "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+            "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              "A String",
+            ],
+          },
+        },
+        "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+          "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+            "A String",
+          ],
+          "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+            "A String",
+          ],
+        },
+        "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        "availableQuantity": 42, # The available quantity of the item.
+        "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+        "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+          "A String",
+        ],
+        "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          "A String",
+        ],
+        "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+          "A String",
+        ],
+        "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+            "A String",
+          ],
+          "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+            "A String",
+          ],
+        },
+        "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+          "A String",
+        ],
+        "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+        "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+          { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+            "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+              "A String",
+            ],
+            "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+        "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+        "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+          "A String",
+        ],
+        "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+        "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+          "A String",
+        ],
+        "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+          "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+          "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+          "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+            "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+              "exclusiveMaximum": 3.14, # Exclusive upper bound.
+              "exclusiveMinimum": 3.14, # Exclusive lower bound.
+              "maximum": 3.14, # Inclusive upper bound.
+              "minimum": 3.14, # Inclusive lower bound.
+            },
+            "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+              "exclusiveMaximum": 3.14, # Exclusive upper bound.
+              "exclusiveMinimum": 3.14, # Exclusive lower bound.
+              "maximum": 3.14, # Inclusive upper bound.
+              "minimum": 3.14, # Inclusive lower bound.
+            },
+          },
+        },
+        "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+          { # Promotion information.
+            "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+          },
+        ],
+        "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+        "rating": { # The rating of a Product. # The rating of this product.
+          "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+          "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+            42,
+          ],
+        },
+        "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+        "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+          "A String",
+        ],
+        "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          "A String",
+        ],
+        "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+        "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+          # Object with schema name: GoogleCloudRetailV2Product
+        ],
+      },
+      "variantRollupValues": { # The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "colorFamilies", only "red" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors "red" and "blue", the rollup values are { key: "colorFamilies" value { list_value { values { string_value: "red" } values { string_value: "blue" } } } } For Product.fulfillment_info, the rollup values is a double value with type google.protobuf.Value. For example, {key: "pickupInStore.store1" value { number_value: 10 }} means a there are 10 variants in this product are available in the store "store1".
+        "a_key": "",
+      },
+    },
+  ],
+  "totalSize": 42, # The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.
+}
+
+ +
+ search_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+ \ No newline at end of file diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html b/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html index 7590a185ce1..7322345b087 100644 --- a/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html +++ b/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html @@ -141,14 +141,19 @@

Method Details

}, "inputConfig": { # The input config source for user events. # Required. The desired input location of the data. "bigQuerySource": { # BigQuery source import data from. # Required. BigQuery input source. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters. "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory. + "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. + "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. + "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. + }, "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request. "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters. }, "gcsSource": { # Google Cloud Storage location for input content. format. # Required. Google Cloud Storage location for the input content. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "inputUris": [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions. "A String", ], @@ -158,21 +163,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -180,23 +195,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -205,20 +257,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -231,12 +327,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -372,21 +469,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -394,23 +501,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -419,20 +563,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -445,12 +633,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -467,21 +656,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -489,23 +688,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -514,20 +750,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2Product + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -540,12 +820,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html index 92a5f868a36..8729e1c3bdd 100644 --- a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html +++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html @@ -74,6 +74,9 @@

Retail API . projects . locations . catalogs . branches . products

Instance Methods

+

+ addFulfillmentPlaces(product, body=None, x__xgafv=None)

+

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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

close()

Close httplib2 connections.

@@ -89,10 +92,69 @@

Instance Methods

import_(parent, body=None, x__xgafv=None)

Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.

+

+ list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, requireTotalSize=None, x__xgafv=None)

+

Gets a list of Products.

+

+ list_next(previous_request, previous_response)

+

Retrieves the next page of results.

patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)

Updates a Product.

+

+ removeFulfillmentPlaces(product, body=None, x__xgafv=None)

+

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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ setInventory(name, body=None, x__xgafv=None)

+

Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

Method Details

+
+ addFulfillmentPlaces(product, body=None, x__xgafv=None) +
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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  product: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for AddFulfillmentPlaces method.
+  "addTime": "A String", # The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.
+  "allowMissing": True or False, # If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "placeIds": [ # Required. The IDs for this type, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.
+    "A String",
+  ],
+  "type": "A String", # Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+
close()
Close httplib2 connections.
@@ -108,23 +170,60 @@

Method Details

The object takes the form of: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -133,20 +232,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], } productId: string, Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. @@ -159,23 +302,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -184,20 +364,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }
@@ -234,23 +458,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -259,20 +520,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }
@@ -291,14 +596,19 @@

Method Details

}, "inputConfig": { # The input config source for products. # Required. The desired input location of the data. "bigQuerySource": { # BigQuery source import data from. # BigQuery input source. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters. "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory. + "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. + "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. + "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. + }, "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request. "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters. }, "gcsSource": { # Google Cloud Storage location for input content. format. # Google Cloud Storage location for the input content. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "inputUris": [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions. "A String", ], @@ -306,23 +616,60 @@

Method Details

"productInlineSource": { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products. "products": [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items. { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -331,24 +678,71 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }, ], }, }, + "notificationPubsubTopic": "A String", # Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "reconciliationMode": "A String", # The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL. + "requestId": "A String", # Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: "[a-zA-Z0-9_]+". This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. "updateMask": "A String", # Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields. } @@ -381,6 +775,169 @@

Method Details

}
+
+ list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, requireTotalSize=None, x__xgafv=None) +
Gets a list of Products.
+
+Args:
+  parent: string, Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned. (required)
+  filter: string, A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = "some_product_id"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = "some_product_id"` * List Products with a partibular type. For example: `type = "PRIMARY"` `type = "VARIANT"` `type = "COLLECTION"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.
+  pageSize: integer, Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.
+  pageToken: string, A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  readMask: string, The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If "*" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  requireTotalSize: boolean, If true and page_token is empty, ListProductsResponse.total_size is set to the total count of matched items irrespective of pagination. Notice that setting this field to true affects the performance.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ProductService.ListProducts method.
+  "nextPageToken": "A String", # A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  "products": [ # The Products.
+    { # Product captures all metadata information of items to be recommended or searched.
+      "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+        "a_key": { # A custom attribute that is not explicitly modeled in Product.
+          "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+          "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            3.14,
+          ],
+          "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+          "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+        },
+      },
+      "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+        "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+          "A String",
+        ],
+        "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+          "A String",
+        ],
+      },
+      "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+      "availableQuantity": 42, # The available quantity of the item.
+      "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+      "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+        "A String",
+      ],
+      "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+        "A String",
+      ],
+      "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+        "A String",
+      ],
+      "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "A String",
+        ],
+        "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "A String",
+        ],
+      },
+      "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+        "A String",
+      ],
+      "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+      "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+      "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+        { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+          "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+          "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+      "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+      "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+      "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+        { # Product thumbnail/detail image.
+          "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+      "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+      "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+        "A String",
+      ],
+      "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+      "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+        "A String",
+      ],
+      "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+        "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+        "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+        "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+        "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+        "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+        "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+          "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+          "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+        },
+      },
+      "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+      "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+        { # Promotion information.
+          "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+        },
+      ],
+      "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+      "rating": { # The rating of a Product. # The rating of this product.
+        "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+        "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+          42,
+        ],
+      },
+      "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+      "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+        "A String",
+      ],
+      "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+        "A String",
+      ],
+      "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+      "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+      "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+      "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+        # Object with schema name: GoogleCloudRetailV2alphaProduct
+      ],
+    },
+  ],
+  "totalSize": 42, # The total count of matched Products irrespective of pagination. The total number of Products returned by pagination may be less than the total_size that matches. This field is ignored if ListProductsRequest.require_total_size is not set or ListProductsRequest.page_token is not empty.
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+
patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)
Updates a Product.
@@ -391,23 +948,60 @@ 

Method Details

The object takes the form of: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -416,20 +1010,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], } allowMissing: boolean, If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored. @@ -443,23 +1081,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -468,20 +1143,277 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], +}
+
+ +
+ removeFulfillmentPlaces(product, body=None, x__xgafv=None) +
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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  product: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for RemoveFulfillmentPlaces method.
+  "allowMissing": True or False, # If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "placeIds": [ # Required. The IDs for this type, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+    "A String",
+  ],
+  "removeTime": "A String", # The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.
+  "type": "A String", # Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ +
+ setInventory(name, body=None, x__xgafv=None) +
Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  name: string, Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SetInventory method.
+  "allowMissing": True or False, # If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "inventory": { # Product captures all metadata information of items to be recommended or searched. # Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead.
+    "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+      "a_key": { # A custom attribute that is not explicitly modeled in Product.
+        "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+        "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          3.14,
+        ],
+        "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+        "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          "A String",
+        ],
+      },
+    },
+    "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+      "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+        "A String",
+      ],
+      "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+        "A String",
+      ],
+    },
+    "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+    "availableQuantity": 42, # The available quantity of the item.
+    "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+    "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+      "A String",
+    ],
+    "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+      "A String",
+    ],
+    "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+      "A String",
+    ],
+    "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+      "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "A String",
+      ],
+      "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "A String",
+      ],
+    },
+    "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+      "A String",
+    ],
+    "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+    "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+    "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+      { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+        "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+          "A String",
+        ],
+        "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+      },
+    ],
+    "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+    "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+    "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      { # Product thumbnail/detail image.
+        "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+        "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      },
+    ],
+    "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+    "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+      "A String",
+    ],
+    "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+    "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+      "A String",
+    ],
+    "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+      "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+      "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+      "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+      "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+      "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+      "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+      "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+        "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+          "exclusiveMaximum": 3.14, # Exclusive upper bound.
+          "exclusiveMinimum": 3.14, # Exclusive lower bound.
+          "maximum": 3.14, # Inclusive upper bound.
+          "minimum": 3.14, # Inclusive lower bound.
+        },
+        "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+          "exclusiveMaximum": 3.14, # Exclusive upper bound.
+          "exclusiveMinimum": 3.14, # Exclusive lower bound.
+          "maximum": 3.14, # Inclusive upper bound.
+          "minimum": 3.14, # Inclusive lower bound.
+        },
+      },
+    },
+    "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+    "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+      { # Promotion information.
+        "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+      },
+    ],
+    "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+    "rating": { # The rating of a Product. # The rating of this product.
+      "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+      "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+        42,
+      ],
+    },
+    "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+    "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+      "A String",
+    ],
+    "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+      "A String",
+    ],
+    "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+    "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+    "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+    "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+    "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+      # Object with schema name: GoogleCloudRetailV2alphaProduct
+    ],
+  },
+  "setMask": "A String", # Indicates which inventory fields in the provided Product to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.
+  "setTime": "A String", # The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
 }
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.completionData.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.completionData.html new file mode 100644 index 00000000000..0ddac69016c --- /dev/null +++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.completionData.html @@ -0,0 +1,145 @@ + + + +

Retail API . projects . locations . catalogs . completionData

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ import_(parent, body=None, x__xgafv=None)

+

Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ import_(parent, body=None, x__xgafv=None) +
Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  parent: string, Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for ImportCompletionData methods.
+  "inputConfig": { # The input config source for completion data. # Required. The desired input location of the data.
+    "bigQuerySource": { # BigQuery source import data from. # Required. BigQuery input source. Add the IAM permission “BigQuery Data Viewer” for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown.
+      "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
+      "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.
+        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
+        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.
+      "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+  },
+  "notificationPubsubTopic": "A String", # Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.html index c16bf40595e..26245e36bbf 100644 --- a/docs/dyn/retail_v2alpha.projects.locations.catalogs.html +++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.html @@ -79,6 +79,11 @@

Instance Methods

Returns the branches Resource.

+

+ completionData() +

+

Returns the completionData Resource.

+

operations()

@@ -97,6 +102,12 @@

Instance Methods

close()

Close httplib2 connections.

+

+ completeQuery(catalog, dataset=None, deviceType=None, languageCodes=None, maxSuggestions=None, query=None, visitorId=None, x__xgafv=None)

+

Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ getDefaultBranch(catalog, x__xgafv=None)

+

Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

Lists all the Catalogs associated with the project.

@@ -106,12 +117,83 @@

Instance Methods

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates the Catalogs.

+

+ setDefaultBranch(catalog, body=None, x__xgafv=None)

+

Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using "default_branch" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

Method Details

close()
Close httplib2 connections.
+
+ completeQuery(catalog, dataset=None, deviceType=None, languageCodes=None, maxSuggestions=None, query=None, visitorId=None, x__xgafv=None) +
Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  dataset: string, Determines which dataset to use for fetching completion. "user-data" will use the imported dataset through ImportCompletionData. "cloud-retail" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the "user-data". Current supported values: * user-data * cloud-retail This option is not automatically enabled. Before using cloud-retail, contact retail-search-support@google.com first.
+  deviceType: string, The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. DESKTOP, MOBILE. If it is empty, the suggestions are across all device types. Supported formats: * UNKNOWN_DEVICE_TYPE * DESKTOP * MOBILE * A customized string starts with OTHER_, e.g. OTHER_IPHONE.
+  languageCodes: string, The list of languages of the query. This is the BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only "en-US" is currently supported. (repeated)
+  maxSuggestions: integer, Completion max suggestions. The maximum allowed max suggestions is 20. The default value is 20.
+  query: string, Required. The query used to generate suggestions. The maximum number of allowed characters is 255.
+  visitorId: string, A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response of the auto-complete query.
+  "attributionToken": "A String", # A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.
+  "completionResults": [ # Results of the matching suggestions. The result list is ordered and the first result is top suggestion.
+    { # Resource that represents completion results.
+      "attributes": { # Additional custom attributes ingested through BigQuery.
+        "a_key": { # A custom attribute that is not explicitly modeled in Product.
+          "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+          "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            3.14,
+          ],
+          "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+          "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+        },
+      },
+      "suggestion": "A String", # The suggestion for the query.
+    },
+  ],
+  "recentSearchResults": [ # Matched recent searches of this user. This field is a restricted feature. Contact Retail Support (retail-search-support@google.com) 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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.
+    { # Recent search of this user.
+      "recentSearch": "A String", # The recent search query.
+    },
+  ],
+}
+
+ +
+ getDefaultBranch(catalog, x__xgafv=None) +
Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message of CatalogService.GetDefaultBranch.
+  "branch": "A String", # Full resource name of the branch id currently set as default branch.
+  "note": "A String", # This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.
+  "setTime": "A String", # The time when this branch is set to default.
+}
+
+
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
Lists all the Catalogs associated with the project.
@@ -132,6 +214,17 @@ 

Method Details

"catalogs": [ # All the customer's Catalogs. { # The catalog configuration. "displayName": "A String", # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "merchantCenterLinkingConfig": { # Configures Merchant Center linking. Links contained in the config will be used to sync data from a Merchant Center account to a Cloud Retail branch. # The Merchant Center linking configuration. Once a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the merchant center account in order to make changes to this field. + "links": [ # Links between Merchant Center accounts and branches. + { # Represents a link between a Merchant Center account and a branch. Once a link is established, products from the linked merchant center account will be streamed to the linked branch. + "branchId": "A String", # The branch id (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch id can only have one linked merchant center account id. + "destinations": [ # String representing the destination to import for, all if left empty. List of possible values can be found here. [https://support.google.com/merchants/answer/7501026?hl=en] List of allowed string values: "shopping-ads", "buy-on-google-listings", "display-ads", "local-inventory -ads", "free-listings", "free-local-listings" NOTE: The string values are case sensitive. + "A String", + ], + "merchantCenterAccountId": "A String", # Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA. + }, + ], + }, "name": "A String", # Required. Immutable. The fully qualified resource name of the catalog. "productLevelConfig": { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration. "ingestionProductType": "A String", # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details. @@ -168,6 +261,17 @@

Method Details

{ # The catalog configuration. "displayName": "A String", # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "merchantCenterLinkingConfig": { # Configures Merchant Center linking. Links contained in the config will be used to sync data from a Merchant Center account to a Cloud Retail branch. # The Merchant Center linking configuration. Once a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the merchant center account in order to make changes to this field. + "links": [ # Links between Merchant Center accounts and branches. + { # Represents a link between a Merchant Center account and a branch. Once a link is established, products from the linked merchant center account will be streamed to the linked branch. + "branchId": "A String", # The branch id (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch id can only have one linked merchant center account id. + "destinations": [ # String representing the destination to import for, all if left empty. List of possible values can be found here. [https://support.google.com/merchants/answer/7501026?hl=en] List of allowed string values: "shopping-ads", "buy-on-google-listings", "display-ads", "local-inventory -ads", "free-listings", "free-local-listings" NOTE: The string values are case sensitive. + "A String", + ], + "merchantCenterAccountId": "A String", # Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA. + }, + ], + }, "name": "A String", # Required. Immutable. The fully qualified resource name of the catalog. "productLevelConfig": { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration. "ingestionProductType": "A String", # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details. @@ -186,6 +290,17 @@

Method Details

{ # The catalog configuration. "displayName": "A String", # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "merchantCenterLinkingConfig": { # Configures Merchant Center linking. Links contained in the config will be used to sync data from a Merchant Center account to a Cloud Retail branch. # The Merchant Center linking configuration. Once a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the merchant center account in order to make changes to this field. + "links": [ # Links between Merchant Center accounts and branches. + { # Represents a link between a Merchant Center account and a branch. Once a link is established, products from the linked merchant center account will be streamed to the linked branch. + "branchId": "A String", # The branch id (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch id can only have one linked merchant center account id. + "destinations": [ # String representing the destination to import for, all if left empty. List of possible values can be found here. [https://support.google.com/merchants/answer/7501026?hl=en] List of allowed string values: "shopping-ads", "buy-on-google-listings", "display-ads", "local-inventory -ads", "free-listings", "free-local-listings" NOTE: The string values are case sensitive. + "A String", + ], + "merchantCenterAccountId": "A String", # Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA. + }, + ], + }, "name": "A String", # Required. Immutable. The fully qualified resource name of the catalog. "productLevelConfig": { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration. "ingestionProductType": "A String", # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details. @@ -194,4 +309,30 @@

Method Details

}
+
+ setDefaultBranch(catalog, body=None, x__xgafv=None) +
Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using "default_branch" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message to set a specified branch as new default_branch.
+  "branchId": "A String", # The final component of the resource name of a branch. This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
+  "note": "A String", # Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}
+
+ \ No newline at end of file diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html index 554c03f0c27..2ad160d6849 100644 --- a/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html +++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html @@ -80,6 +80,12 @@

Instance Methods

predict(placement, body=None, x__xgafv=None)

Makes a recommendation prediction.

+

+ search(placement, body=None, x__xgafv=None)

+

Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ search_next(previous_request, previous_response)

+

Retrieves the next page of results.

Method Details

close() @@ -108,21 +114,31 @@

Method Details

"userEvent": { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. # Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -130,23 +146,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -155,20 +208,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -181,12 +278,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -219,4 +317,269 @@

Method Details

}
+
+ search(placement, body=None, x__xgafv=None) +
Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  placement: string, Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the set of models that will be used to make the search. We currently support one placement with the following ID: * `default_search`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SearchService.Search method.
+  "boostSpec": { # Boost specification to boost certain items. # Boost specification to boost certain products. See more details at this [user guide](/retail/private/docs/boosting).
+    "conditionBoostSpecs": [ # Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.
+      { # Boost applies to products which match a condition.
+        "boost": 3.14, # Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
+        "condition": "A String", # An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
+      },
+    ],
+  },
+  "branch": "A String", # 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.
+  "canonicalFilter": "A String", # 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.
+  "dynamicFacetSpec": { # The specifications of dynamically generated facets. # The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature.
+    "mode": "A String", # Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.
+  },
+  "facetSpecs": [ # Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
+    { # A facet specification to perform faceted search.
+      "enableDynamicPosition": True or False, # 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.
+      "excludedFilterKeys": [ # List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet "Red" and 200 products with color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")" and have "colorFamilies" as FacetKey.key will by default return the "Red" with count 100. If this field contains "colorFamilies", then the query returns both the "Red" with count 100 and "Blue" with count 200, because the "colorFamilies" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
+        "A String",
+      ],
+      "facetKey": { # Specifies how a facet is computed. # Required. The facet key specification.
+        "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.
+          "A String",
+        ],
+        "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 30.
+          { # A floating point interval.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+        ],
+        "key": "A String", # Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = *# The Product.brands. * "brands"; *# The Product.categories. * "categories"; *# The Audience.genders. * | "genders"; *# The Audience.age_groups. * | "ageGroups"; *# The Product.availability. Value is one of * *# "IN_STOCK", "OUT_OF_STOCK", PREORDER", "BACKORDER". * | "availability"; *# The ColorInfo.color_families. * | "colorFamilies"; *# The ColorInfo.colors. * | "colors"; *# The Product.sizes. * | "sizes"; *# The Product.materials. * | "materials"; *# The Product.patterns. * | "patterns"; *# The Product.conditions. * | "conditions"; *# The textual custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are textual. * *# map. * | "attributes.key"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.PICKUP_IN_STORE. * | "pickupInStore"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SHIP_TO_STORE. * | "shipToStore"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | "sameDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * | "nextDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_1. * | "customFulfillment1"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | "customFulfillment2"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | "customFulfillment3"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_4. * | "customFulfillment4"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | "customFulfillment5"; * numerical_field = *# The PriceInfo.price. * "price"; *# The discount. Computed by (original_price-price)/price * "discount"; *# The Rating.average_rating. * "rating"; *# The Rating.rating_count. * "ratingCount"; *# The numerical custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are numerical. * | "attributes.key";
+        "orderBy": "A String", # The order in which Facet.values are returned. Allowed values are: * "count desc", which means order by Facet.FacetValue.count descending. * "value desc", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.
+        "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.
+          "A String",
+        ],
+        "query": "A String", # 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, FacetValue.value will be always "1" and FacetValue.count will be the number of results that matches 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".
+        "restrictedValues": [ # Only get facet for the given restricted values. For example, when using "pickupInStore" as key and set restricted values to ["store123", "store456"], only facets for "store123" and "store456" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5
+          "A String",
+        ],
+      },
+      "limit": 42, # Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.
+    },
+  ],
+  "filter": "A String", # 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](/retail/private/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+  "offset": 42, # A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.
+  "orderBy": "A String", # 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](/retail/private/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+  "pageCategories": [ # The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
+    "A String",
+  ],
+  "pageSize": 42, # Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.
+  "pageToken": "A String", # A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  "query": "A String", # Raw search query.
+  "queryExpansionSpec": { # Specification to determine under which conditions query expansion should occur. # The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](/retail/private/docs/result-size#query_expansion).
+    "condition": "A String", # The condition under which query expansion should occur. Default to Condition.DISABLED.
+  },
+  "relevanceThreshold": "A String", # 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](/retail/private/docs/result-size#relevance_thresholding).
+  "userInfo": { # Information of an end user. # User information.
+    "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  "variantRollupKeys": [ # The keys to fetch and rollup the matching variant Products attributes. The attributes from all the matching variant Products are merged and de-duplicated. Notice that rollup variant Products attributes will lead to extra query latency. Maximum number of keys is 10. For Product.fulfillment_info, a fulfillment type and a fulfillment ID must be provided in the format of "fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is fulfillment type and "store123" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. * shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * customFulfillment1.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. * customFulfillment3.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. * customFulfillment5.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+    "A String",
+  ],
+  "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for SearchService.Search method.
+  "attributionToken": "A String", # A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.
+  "correctedQuery": "A String", # If spell correction applies, the corrected query. Otherwise, empty.
+  "facets": [ # Results of facets requested by user.
+    { # A facet result.
+      "dynamicFacet": True or False, # Whether the facet is dynamically generated.
+      "key": "A String", # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
+      "values": [ # The facet values for this field.
+        { # A facet value which contains value names and their count.
+          "count": "A String", # Number of items that have this facet value.
+          "interval": { # A floating point interval. # Interval value for a facet, such as [10, 20) for facet "price".
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+          "value": "A String", # Text value of a facet, such as "Black" for facet "colorFamilies".
+        },
+      ],
+    },
+  ],
+  "nextPageToken": "A String", # A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  "queryExpansionInfo": { # Information describing query expansion including whether expansion has occurred. # Query expansion information for the returned results.
+    "expandedQuery": True or False, # Bool describing whether query expansion has occurred.
+  },
+  "redirectUri": "A String", # The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.
+  "results": [ # A list of matched items. The order represents the ranking.
+    { # Represents the search results.
+      "id": "A String", # Product.id of the searched Product.
+      "matchingVariantCount": 42, # The count of matched variant Products.
+      "matchingVariantFields": { # If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key "sku1" with field mask "products.color_info" indicates there is a match between "sku1" ColorInfo and the query.
+        "a_key": "A String",
+      },
+      "product": { # Product captures all metadata information of items to be recommended or searched. # The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching "shoe" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless.
+        "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+          "a_key": { # A custom attribute that is not explicitly modeled in Product.
+            "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+            "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+            "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              "A String",
+            ],
+          },
+        },
+        "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+          "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+            "A String",
+          ],
+          "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+            "A String",
+          ],
+        },
+        "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        "availableQuantity": 42, # The available quantity of the item.
+        "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+        "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+          "A String",
+        ],
+        "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          "A String",
+        ],
+        "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+          "A String",
+        ],
+        "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+            "A String",
+          ],
+          "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+            "A String",
+          ],
+        },
+        "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+          "A String",
+        ],
+        "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+        "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+          { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+            "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+              "A String",
+            ],
+            "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+        "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+        "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+          "A String",
+        ],
+        "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+        "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+          "A String",
+        ],
+        "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+          "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+          "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+          "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+            "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+              "exclusiveMaximum": 3.14, # Exclusive upper bound.
+              "exclusiveMinimum": 3.14, # Exclusive lower bound.
+              "maximum": 3.14, # Inclusive upper bound.
+              "minimum": 3.14, # Inclusive lower bound.
+            },
+            "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+              "exclusiveMaximum": 3.14, # Exclusive upper bound.
+              "exclusiveMinimum": 3.14, # Exclusive lower bound.
+              "maximum": 3.14, # Inclusive upper bound.
+              "minimum": 3.14, # Inclusive lower bound.
+            },
+          },
+        },
+        "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+          { # Promotion information.
+            "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+          },
+        ],
+        "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+        "rating": { # The rating of a Product. # The rating of this product.
+          "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+          "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+            42,
+          ],
+        },
+        "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+        "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+          "A String",
+        ],
+        "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          "A String",
+        ],
+        "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+        "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+          # Object with schema name: GoogleCloudRetailV2alphaProduct
+        ],
+      },
+      "variantRollupValues": { # The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "colorFamilies", only "red" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors "red" and "blue", the rollup values are { key: "colorFamilies" value { list_value { values { string_value: "red" } values { string_value: "blue" } } } } For Product.fulfillment_info, the rollup values is a double value with type google.protobuf.Value. For example, {key: "pickupInStore.store1" value { number_value: 10 }} means a there are 10 variants in this product are available in the store "store1".
+        "a_key": "",
+      },
+    },
+  ],
+  "totalSize": 42, # The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.
+}
+
+ +
+ search_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+ \ No newline at end of file diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html index 902187947ca..9114003b5b3 100644 --- a/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html +++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html @@ -141,14 +141,19 @@

Method Details

}, "inputConfig": { # The input config source for user events. # Required. The desired input location of the data. "bigQuerySource": { # BigQuery source import data from. # Required. BigQuery input source. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters. "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory. + "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. + "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. + "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. + }, "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request. "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters. }, "gcsSource": { # Google Cloud Storage location for input content. format. # Required. Google Cloud Storage location for the input content. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "inputUris": [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions. "A String", ], @@ -158,21 +163,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -180,23 +195,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -205,20 +257,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -231,12 +327,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -372,21 +469,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -394,23 +501,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -419,20 +563,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -445,12 +633,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -467,21 +656,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -489,23 +688,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -514,20 +750,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2alphaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -540,12 +820,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html index 08d8f5ca95a..07554c5ee6b 100644 --- a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html +++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html @@ -74,6 +74,9 @@

Retail API . projects . locations . catalogs . branches . products

Instance Methods

+

+ addFulfillmentPlaces(product, body=None, x__xgafv=None)

+

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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

close()

Close httplib2 connections.

@@ -89,10 +92,69 @@

Instance Methods

import_(parent, body=None, x__xgafv=None)

Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.

+

+ list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, x__xgafv=None)

+

Gets a list of Products.

+

+ list_next(previous_request, previous_response)

+

Retrieves the next page of results.

patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)

Updates a Product.

+

+ removeFulfillmentPlaces(product, body=None, x__xgafv=None)

+

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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ setInventory(name, body=None, x__xgafv=None)

+

Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

Method Details

+
+ addFulfillmentPlaces(product, body=None, x__xgafv=None) +
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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  product: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for AddFulfillmentPlaces method.
+  "addTime": "A String", # The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.
+  "allowMissing": True or False, # If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "placeIds": [ # Required. The IDs for this type, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.
+    "A String",
+  ],
+  "type": "A String", # Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+
close()
Close httplib2 connections.
@@ -108,23 +170,60 @@

Method Details

The object takes the form of: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -133,20 +232,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], } productId: string, Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. @@ -159,23 +302,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -184,20 +364,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }
@@ -234,23 +458,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -259,20 +520,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }
@@ -291,14 +596,19 @@

Method Details

}, "inputConfig": { # The input config source for products. # Required. The desired input location of the data. "bigQuerySource": { # BigQuery source import data from. # BigQuery input source. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters. "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory. + "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. + "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. + "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. + }, "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request. "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters. }, "gcsSource": { # Google Cloud Storage location for input content. format. # Google Cloud Storage location for the input content. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "inputUris": [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions. "A String", ], @@ -306,23 +616,60 @@

Method Details

"productInlineSource": { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products. "products": [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items. { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -331,24 +678,71 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }, ], }, }, + "notificationPubsubTopic": "A String", # Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "reconciliationMode": "A String", # The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL. + "requestId": "A String", # Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: "[a-zA-Z0-9_]+". This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. "updateMask": "A String", # Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields. } @@ -381,6 +775,167 @@

Method Details

}
+
+ list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, x__xgafv=None) +
Gets a list of Products.
+
+Args:
+  parent: string, Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned. (required)
+  filter: string, A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = "some_product_id"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = "some_product_id"` * List Products with a partibular type. For example: `type = "PRIMARY"` `type = "VARIANT"` `type = "COLLECTION"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.
+  pageSize: integer, Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.
+  pageToken: string, A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  readMask: string, The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If "*" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ProductService.ListProducts method.
+  "nextPageToken": "A String", # A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  "products": [ # The Products.
+    { # Product captures all metadata information of items to be recommended or searched.
+      "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+        "a_key": { # A custom attribute that is not explicitly modeled in Product.
+          "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+          "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            3.14,
+          ],
+          "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+          "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+        },
+      },
+      "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+        "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+          "A String",
+        ],
+        "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+          "A String",
+        ],
+      },
+      "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+      "availableQuantity": 42, # The available quantity of the item.
+      "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+      "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+        "A String",
+      ],
+      "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+        "A String",
+      ],
+      "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+        "A String",
+      ],
+      "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "A String",
+        ],
+        "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "A String",
+        ],
+      },
+      "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+        "A String",
+      ],
+      "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+      "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+      "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+        { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+          "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+          "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+      "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+      "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+      "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+        { # Product thumbnail/detail image.
+          "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+      "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+      "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+        "A String",
+      ],
+      "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+      "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+        "A String",
+      ],
+      "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+        "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+        "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+        "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+        "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+        "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+        "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+          "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+          "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+        },
+      },
+      "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+      "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+        { # Promotion information.
+          "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+        },
+      ],
+      "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+      "rating": { # The rating of a Product. # The rating of this product.
+        "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+        "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+          42,
+        ],
+      },
+      "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+      "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+        "A String",
+      ],
+      "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+        "A String",
+      ],
+      "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+      "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+      "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+      "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+        # Object with schema name: GoogleCloudRetailV2betaProduct
+      ],
+    },
+  ],
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+
patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)
Updates a Product.
@@ -391,23 +946,60 @@ 

Method Details

The object takes the form of: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -416,20 +1008,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], } allowMissing: boolean, If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored. @@ -443,23 +1079,60 @@

Method Details

An object of the form: { # Product captures all metadata information of items to be recommended or searched. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -468,20 +1141,277 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], +}
+
+ +
+ removeFulfillmentPlaces(product, body=None, x__xgafv=None) +
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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  product: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for RemoveFulfillmentPlaces method.
+  "allowMissing": True or False, # If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "placeIds": [ # Required. The IDs for this type, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+    "A String",
+  ],
+  "removeTime": "A String", # The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.
+  "type": "A String", # Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ +
+ setInventory(name, body=None, x__xgafv=None) +
Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  name: string, Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SetInventory method.
+  "allowMissing": True or False, # If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.
+  "inventory": { # Product captures all metadata information of items to be recommended or searched. # Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead.
+    "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+      "a_key": { # A custom attribute that is not explicitly modeled in Product.
+        "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+        "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          3.14,
+        ],
+        "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+        "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          "A String",
+        ],
+      },
+    },
+    "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+      "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+        "A String",
+      ],
+      "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+        "A String",
+      ],
+    },
+    "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+    "availableQuantity": 42, # The available quantity of the item.
+    "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+    "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+      "A String",
+    ],
+    "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+      "A String",
+    ],
+    "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+      "A String",
+    ],
+    "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+      "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "A String",
+      ],
+      "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+        "A String",
+      ],
+    },
+    "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+      "A String",
+    ],
+    "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+    "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+    "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+      { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+        "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+          "A String",
+        ],
+        "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+      },
+    ],
+    "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+    "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+    "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      { # Product thumbnail/detail image.
+        "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+        "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+        "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      },
+    ],
+    "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+    "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+      "A String",
+    ],
+    "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+    "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+      "A String",
+    ],
+    "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+      "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+      "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+      "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+      "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+      "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+      "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+      "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+        "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+          "exclusiveMaximum": 3.14, # Exclusive upper bound.
+          "exclusiveMinimum": 3.14, # Exclusive lower bound.
+          "maximum": 3.14, # Inclusive upper bound.
+          "minimum": 3.14, # Inclusive lower bound.
+        },
+        "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+          "exclusiveMaximum": 3.14, # Exclusive upper bound.
+          "exclusiveMinimum": 3.14, # Exclusive lower bound.
+          "maximum": 3.14, # Inclusive upper bound.
+          "minimum": 3.14, # Inclusive lower bound.
+        },
+      },
+    },
+    "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+    "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+      { # Promotion information.
+        "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+      },
+    ],
+    "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+    "rating": { # The rating of a Product. # The rating of this product.
+      "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+      "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+        42,
+      ],
+    },
+    "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+    "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+      "A String",
+    ],
+    "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+      "A String",
+    ],
+    "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+    "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+    "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+    "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+    "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+      # Object with schema name: GoogleCloudRetailV2betaProduct
+    ],
+  },
+  "setMask": "A String", # Indicates which inventory fields in the provided Product to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.
+  "setTime": "A String", # The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
 }
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.completionData.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.completionData.html new file mode 100644 index 00000000000..c1341ed1f9d --- /dev/null +++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.completionData.html @@ -0,0 +1,145 @@ + + + +

Retail API . projects . locations . catalogs . completionData

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ import_(parent, body=None, x__xgafv=None)

+

Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ import_(parent, body=None, x__xgafv=None) +
Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  parent: string, Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for ImportCompletionData methods.
+  "inputConfig": { # The input config source for completion data. # Required. The desired input location of the data.
+    "bigQuerySource": { # BigQuery source import data from. # Required. BigQuery input source. Add the IAM permission “BigQuery Data Viewer” for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown.
+      "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.
+      "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.
+        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
+        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.
+      "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+  },
+  "notificationPubsubTopic": "A String", # Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
+  "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "a_key": "", # Properties of the object. Contains field @type with type URL.
+  },
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.html index ddf57c6cc56..b060f4fc11b 100644 --- a/docs/dyn/retail_v2beta.projects.locations.catalogs.html +++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.html @@ -79,6 +79,11 @@

Instance Methods

Returns the branches Resource.

+

+ completionData() +

+

Returns the completionData Resource.

+

operations()

@@ -97,6 +102,12 @@

Instance Methods

close()

Close httplib2 connections.

+

+ completeQuery(catalog, dataset=None, deviceType=None, languageCodes=None, maxSuggestions=None, query=None, visitorId=None, x__xgafv=None)

+

Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ getDefaultBranch(catalog, x__xgafv=None)

+

Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

Lists all the Catalogs associated with the project.

@@ -106,12 +117,83 @@

Instance Methods

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates the Catalogs.

+

+ setDefaultBranch(catalog, body=None, x__xgafv=None)

+

Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using "default_branch" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

Method Details

close()
Close httplib2 connections.
+
+ completeQuery(catalog, dataset=None, deviceType=None, languageCodes=None, maxSuggestions=None, query=None, visitorId=None, x__xgafv=None) +
Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  dataset: string, Determines which dataset to use for fetching completion. "user-data" will use the imported dataset through ImportCompletionData. "cloud-retail" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the "user-data". Current supported values: * user-data * cloud-retail This option is not automatically enabled. Before using cloud-retail, contact retail-search-support@google.com first.
+  deviceType: string, The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. DESKTOP, MOBILE. If it is empty, the suggestions are across all device types. Supported formats: * UNKNOWN_DEVICE_TYPE * DESKTOP * MOBILE * A customized string starts with OTHER_, e.g. OTHER_IPHONE.
+  languageCodes: string, The list of languages of the query. This is the BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only "en-US" is currently supported. (repeated)
+  maxSuggestions: integer, Completion max suggestions. The maximum allowed max suggestions is 20. The default value is 20.
+  query: string, Required. The query used to generate suggestions. The maximum number of allowed characters is 255.
+  visitorId: string, A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response of the auto-complete query.
+  "attributionToken": "A String", # A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.
+  "completionResults": [ # Results of the matching suggestions. The result list is ordered and the first result is top suggestion.
+    { # Resource that represents completion results.
+      "attributes": { # Additional custom attributes ingested through BigQuery.
+        "a_key": { # A custom attribute that is not explicitly modeled in Product.
+          "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+          "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            3.14,
+          ],
+          "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+          "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+            "A String",
+          ],
+        },
+      },
+      "suggestion": "A String", # The suggestion for the query.
+    },
+  ],
+  "recentSearchResults": [ # Matched recent searches of this user. This field is a restricted feature. Contact Retail Support (retail-search-support@google.com) 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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.
+    { # Recent search of this user.
+      "recentSearch": "A String", # The recent search query.
+    },
+  ],
+}
+
+ +
+ getDefaultBranch(catalog, x__xgafv=None) +
Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message of CatalogService.GetDefaultBranch.
+  "branch": "A String", # Full resource name of the branch id currently set as default branch.
+  "note": "A String", # This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.
+  "setTime": "A String", # The time when this branch is set to default.
+}
+
+
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
Lists all the Catalogs associated with the project.
@@ -194,4 +276,30 @@ 

Method Details

}
+
+ setDefaultBranch(catalog, body=None, x__xgafv=None) +
Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using "default_branch" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  catalog: string, Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message to set a specified branch as new default_branch.
+  "branchId": "A String", # The final component of the resource name of a branch. This field must be one of "0", "1" or "2". Otherwise, an INVALID_ARGUMENT error is returned.
+  "note": "A String", # Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}
+
+ \ No newline at end of file diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html index 446f9c17f07..af31af4c3f6 100644 --- a/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html +++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html @@ -80,6 +80,12 @@

Instance Methods

predict(placement, body=None, x__xgafv=None)

Makes a recommendation prediction.

+

+ search(placement, body=None, x__xgafv=None)

+

Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.

+

+ search_next(previous_request, previous_response)

+

Retrieves the next page of results.

Method Details

close() @@ -108,21 +114,31 @@

Method Details

"userEvent": { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. # Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -130,23 +146,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -155,20 +208,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -181,12 +278,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -219,4 +317,268 @@

Method Details

}
+
+ search(placement, body=None, x__xgafv=None) +
Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.
+
+Args:
+  placement: string, Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the set of models that will be used to make the search. We currently support one placement with the following ID: * `default_search`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SearchService.Search method.
+  "boostSpec": { # Boost specification to boost certain items. # Boost specification to boost certain products. See more details at this [user guide](/retail/private/docs/boosting).
+    "conditionBoostSpecs": [ # Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.
+      { # Boost applies to products which match a condition.
+        "boost": 3.14, # Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
+        "condition": "A String", # An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
+      },
+    ],
+  },
+  "branch": "A String", # 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.
+  "canonicalFilter": "A String", # 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.
+  "dynamicFacetSpec": { # The specifications of dynamically generated facets. # The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature.
+    "mode": "A String", # Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.
+  },
+  "facetSpecs": [ # Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
+    { # A facet specification to perform faceted search.
+      "enableDynamicPosition": True or False, # 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.
+      "excludedFilterKeys": [ # List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet "Red" and 200 products with color facet "Blue". A query containing the filter "colorFamilies:ANY("Red")" and have "colorFamilies" as FacetKey.key will by default return the "Red" with count 100. If this field contains "colorFamilies", then the query returns both the "Red" with count 100 and "Blue" with count 200, because the "colorFamilies" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
+        "A String",
+      ],
+      "facetKey": { # Specifies how a facet is computed. # Required. The facet key specification.
+        "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.
+          "A String",
+        ],
+        "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 30.
+          { # A floating point interval.
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+        ],
+        "key": "A String", # Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = *# The Product.brands. * "brands"; *# The Product.categories. * "categories"; *# The Audience.genders. * | "genders"; *# The Audience.age_groups. * | "ageGroups"; *# The Product.availability. Value is one of * *# "IN_STOCK", "OUT_OF_STOCK", PREORDER", "BACKORDER". * | "availability"; *# The ColorInfo.color_families. * | "colorFamilies"; *# The ColorInfo.colors. * | "colors"; *# The Product.sizes. * | "sizes"; *# The Product.materials. * | "materials"; *# The Product.patterns. * | "patterns"; *# The Product.conditions. * | "conditions"; *# The textual custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are textual. * *# map. * | "attributes.key"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.PICKUP_IN_STORE. * | "pickupInStore"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SHIP_TO_STORE. * | "shipToStore"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | "sameDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * | "nextDayDelivery"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_1. * | "customFulfillment1"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | "customFulfillment2"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | "customFulfillment3"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_4. * | "customFulfillment4"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | "customFulfillment5"; * numerical_field = *# The PriceInfo.price. * "price"; *# The discount. Computed by (original_price-price)/price * "discount"; *# The Rating.average_rating. * "rating"; *# The Rating.rating_count. * "ratingCount"; *# The numerical custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are numerical. * | "attributes.key";
+        "orderBy": "A String", # The order in which Facet.values are returned. Allowed values are: * "count desc", which means order by Facet.FacetValue.count descending. * "value desc", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.
+        "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.
+          "A String",
+        ],
+        "query": "A String", # 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, FacetValue.value will be always "1" and FacetValue.count will be the number of results that matches 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".
+        "restrictedValues": [ # Only get facet for the given restricted values. For example, when using "pickupInStore" as key and set restricted values to ["store123", "store456"], only facets for "store123" and "store456" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5
+          "A String",
+        ],
+      },
+      "limit": 42, # Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.
+    },
+  ],
+  "filter": "A String", # 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](/retail/private/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+  "offset": 42, # A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.
+  "orderBy": "A String", # 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](/retail/private/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+  "pageCategories": [ # The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
+    "A String",
+  ],
+  "pageSize": 42, # Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.
+  "pageToken": "A String", # A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  "query": "A String", # Raw search query.
+  "queryExpansionSpec": { # Specification to determine under which conditions query expansion should occur. # The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](/retail/private/docs/result-size#query_expansion).
+    "condition": "A String", # The condition under which query expansion should occur. Default to Condition.DISABLED.
+  },
+  "userInfo": { # Information of an end user. # User information.
+    "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  "variantRollupKeys": [ # The keys to fetch and rollup the matching variant Products attributes. The attributes from all the matching variant Products are merged and de-duplicated. Notice that rollup variant Products attributes will lead to extra query latency. Maximum number of keys is 10. For Product.fulfillment_info, a fulfillment type and a fulfillment ID must be provided in the format of "fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is fulfillment type and "store123" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. * shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * customFulfillment1.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. * customFulfillment3.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. * customFulfillment5.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+    "A String",
+  ],
+  "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for SearchService.Search method.
+  "attributionToken": "A String", # A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.
+  "correctedQuery": "A String", # If spell correction applies, the corrected query. Otherwise, empty.
+  "facets": [ # Results of facets requested by user.
+    { # A facet result.
+      "dynamicFacet": True or False, # Whether the facet is dynamically generated.
+      "key": "A String", # The key for this facet. E.g., "colorFamilies" or "price" or "attributes.attr1".
+      "values": [ # The facet values for this field.
+        { # A facet value which contains value names and their count.
+          "count": "A String", # Number of items that have this facet value.
+          "interval": { # A floating point interval. # Interval value for a facet, such as [10, 20) for facet "price".
+            "exclusiveMaximum": 3.14, # Exclusive upper bound.
+            "exclusiveMinimum": 3.14, # Exclusive lower bound.
+            "maximum": 3.14, # Inclusive upper bound.
+            "minimum": 3.14, # Inclusive lower bound.
+          },
+          "value": "A String", # Text value of a facet, such as "Black" for facet "colorFamilies".
+        },
+      ],
+    },
+  ],
+  "nextPageToken": "A String", # A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  "queryExpansionInfo": { # Information describing query expansion including whether expansion has occurred. # Query expansion information for the returned results.
+    "expandedQuery": True or False, # Bool describing whether query expansion has occurred.
+  },
+  "redirectUri": "A String", # The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.
+  "results": [ # A list of matched items. The order represents the ranking.
+    { # Represents the search results.
+      "id": "A String", # Product.id of the searched Product.
+      "matchingVariantCount": 42, # The count of matched variant Products.
+      "matchingVariantFields": { # If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key "sku1" with field mask "products.color_info" indicates there is a match between "sku1" ColorInfo and the query.
+        "a_key": "A String",
+      },
+      "product": { # Product captures all metadata information of items to be recommended or searched. # The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching "shoe" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless.
+        "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.
+          "a_key": { # A custom attribute that is not explicitly modeled in Product.
+            "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.
+            "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.
+            "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              "A String",
+            ],
+          },
+        },
+        "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product.
+          "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+            "A String",
+          ],
+          "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+            "A String",
+          ],
+        },
+        "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        "availableQuantity": 42, # The available quantity of the item.
+        "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search.
+        "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).
+          "A String",
+        ],
+        "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          "A String",
+        ],
+        "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.
+          "A String",
+        ],
+        "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+          "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+            "A String",
+          ],
+          "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).
+            "A String",
+          ],
+        },
+        "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).
+          "A String",
+        ],
+        "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).
+        "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.
+          { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.
+            "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+              "A String",
+            ],
+            "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+        "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            "height": 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            "uri": "A String", # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            "width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset.
+        "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).
+          "A String",
+        ],
+        "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch".
+        "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).
+          "A String",
+        ],
+        "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.
+          "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.
+          "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.
+          "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+            "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id.
+              "exclusiveMaximum": 3.14, # Exclusive upper bound.
+              "exclusiveMinimum": 3.14, # Exclusive lower bound.
+              "maximum": 3.14, # Inclusive upper bound.
+              "minimum": 3.14, # Inclusive lower bound.
+            },
+            "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id.
+              "exclusiveMaximum": 3.14, # Exclusive upper bound.
+              "exclusiveMinimum": 3.14, # Exclusive lower bound.
+              "maximum": 3.14, # Inclusive upper bound.
+              "minimum": 3.14, # Inclusive lower bound.
+            },
+          },
+        },
+        "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product.
+          { # Promotion information.
+            "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).
+          },
+        ],
+        "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.
+        "rating": { # The rating of a Product. # The rating of this product.
+          "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.
+          "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.
+            42,
+          ],
+        },
+        "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.
+        "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).
+          "A String",
+        ],
+        "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          "A String",
+        ],
+        "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.
+        "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.
+          # Object with schema name: GoogleCloudRetailV2betaProduct
+        ],
+      },
+      "variantRollupValues": { # The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by "colorFamilies:ANY(\"red\")" and rollup "colorFamilies", only "red" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors "red" and "blue", the rollup values are { key: "colorFamilies" value { list_value { values { string_value: "red" } values { string_value: "blue" } } } } For Product.fulfillment_info, the rollup values is a double value with type google.protobuf.Value. For example, {key: "pickupInStore.store1" value { number_value: 10 }} means a there are 10 variants in this product are available in the store "store1".
+        "a_key": "",
+      },
+    },
+  ],
+  "totalSize": 42, # The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.
+}
+
+ +
+ search_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+ \ No newline at end of file diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html index f6dd7d86b97..9374ea6b234 100644 --- a/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html +++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html @@ -141,14 +141,19 @@

Method Details

}, "inputConfig": { # The input config source for user events. # Required. The desired input location of the data. "bigQuerySource": { # BigQuery source import data from. # Required. BigQuery input source. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "datasetId": "A String", # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters. "gcsStagingDir": "A String", # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory. + "partitionDate": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`. + "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. + "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. + "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. + }, "projectId": "A String", # The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request. "tableId": "A String", # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters. }, "gcsSource": { # Google Cloud Storage location for input content. format. # Required. Google Cloud Storage location for the input content. - "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en. + "dataSchema": "A String", # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. "inputUris": [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions. "A String", ], @@ -158,21 +163,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -180,23 +195,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -205,20 +257,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -231,12 +327,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -372,21 +469,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -394,23 +501,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -419,20 +563,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -445,12 +633,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. @@ -467,21 +656,31 @@

Method Details

{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website. "attributes": { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, - "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. + "attributionToken": "A String", # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field. "cartId": "A String", # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events. + "completionDetail": { # Detailed completion information including completion attribution token and clicked completion info. # The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion. + "completionAttributionToken": "A String", # Completion attribution token in CompleteQueryResponse.attribution_token. + "selectedPosition": 42, # End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0. + "selectedSuggestion": "A String", # End user selected CompleteQueryResponse.CompletionResult.suggestion. + }, "eventTime": "A String", # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened. "eventType": "A String", # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `completion`: Completion query result showed/clicked. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart. "experimentIds": [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). "A String", ], + "filter": "A String", # The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + "offset": 42, # An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "orderBy": "A String", # The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "pageCategories": [ # The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], @@ -489,23 +688,60 @@

Method Details

"productDetails": [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet. { # Detailed product information associated with a user event. "product": { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog. - "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. + "attributes": { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS. "a_key": { # A custom attribute that is not explicitly modeled in Product. + "indexable": True or False, # If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details. "numbers": [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is "lengths_cm". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. 3.14, ], + "searchable": True or False, # If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned. "text": [ # The textual values of this custom attribute. For example, `["yellow", "green"]` when the key is "color". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned. "A String", ], }, }, + "audience": { # An intended audience of the Product for whom it's sold. # The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product. + "ageGroups": [ # The age groups of the audience. Strongly encouraged to use the standard values: "newborn" (up to 3 months old), "infant" (3–12 months old), "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge). + "A String", + ], + "genders": [ # The genders of the audience. Strongly encouraged to use the standard values: "male", "female", "unisex". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender). + "A String", + ], + }, "availability": "A String", # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability). "availableQuantity": 42, # The available quantity of the item. - "availableTime": "A String", # The timestamp when this Product becomes available for recommendation. + "availableTime": "A String", # The timestamp when this Product becomes available for SearchService.Search. + "brands": [ # The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand). + "A String", + ], "categories": [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both ["Shoes & Accessories" -> "Shoes"] and ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be represented as: "categories": [ "Shoes & Accessories > Shoes", "Sports & Fitness > Athletic Clothing > Shoes" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436 "A String", ], + "collectionMemberIds": [ # The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return. + "A String", + ], + "colorInfo": { # The color information of a Product. # The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "colorFamilies": [ # The standard color families. Strongly recommended to use the following standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple", "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and "Mixed". Normally it is expected to have only 1 color family. May consider using single "Mixed" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + "colors": [ # The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single "Mixed" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). + "A String", + ], + }, + "conditions": [ # The condition of the product. Strongly encouraged to use the standard values: "new", "refurbished", "used". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition). + "A String", + ], "description": "A String", # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description). + "expireTime": "A String", # The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499). + "fulfillmentInfo": [ # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned. + { # Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. + "placeIds": [ # The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. + "A String", + ], + "type": "A String", # The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. + }, + ], + "gtin": "A String", # The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. "id": "A String", # Immutable. Product identifier, which is the final component of name. For example, this field is "id_1", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku). "images": [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image). { # Product thumbnail/detail image. @@ -514,20 +750,64 @@

Method Details

"width": 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. }, ], + "languageCode": "A String", # Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to "en-US" if unset. + "materials": [ # The material of the product. For example, "leather", "wooden". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material). + "A String", + ], "name": "A String", # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be "default_branch". + "patterns": [ # The pattern or graphic print of the product. For example, "striped", "polka dot", "paisley". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern). + "A String", + ], "priceInfo": { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). "cost": 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895). - "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. + "currencyCode": "A String", # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned. "originalPrice": 3.14, # Price of the product without any discount. If zero, by default set to be the price. "price": 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification). + "priceEffectiveTime": "A String", # The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search. + "priceExpireTime": "A String", # The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search. + "priceRange": { # The price range of all variant Product having the same Product.primary_product_id. # Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + "originalPrice": { # A floating point interval. # The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + "price": { # A floating point interval. # The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id. + "exclusiveMaximum": 3.14, # Exclusive upper bound. + "exclusiveMinimum": 3.14, # Exclusive lower bound. + "maximum": 3.14, # Inclusive upper bound. + "minimum": 3.14, # Inclusive lower bound. + }, + }, }, "primaryProductId": "A String", # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id). + "promotions": [ # The promotions applied to the product. A maximum of 10 values are allowed per Product. + { # Promotion information. + "promotionId": "A String", # ID of the promotion. For example, "free gift". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148). + }, + ], + "publishTime": "A String", # The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation. + "rating": { # The rating of a Product. # The rating of this product. + "averageRating": 3.14, # The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingCount": 42, # The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned. + "ratingHistogram": [ # List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on. + 42, + ], + }, + "retrievableFields": "A String", # Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned. + "sizes": [ # The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in "US:MENS:M", "US" represents size system; "MENS" represents size type; "M" represents size value. In "GIRLS:27", size system is empty; "GIRLS" represents size type; "27" represents size value. In "32 inches", both size system and size type are empty, while size value is "32 inches". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size). + "A String", + ], "tags": [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473). "A String", ], "title": "A String", # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name). + "ttl": "A String", # Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. "type": "A String", # Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset. "uri": "A String", # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url). + "variants": [ # Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests. + # Object with schema name: GoogleCloudRetailV2betaProduct + ], }, "quantity": 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types. }, @@ -540,12 +820,13 @@

Method Details

"tax": 3.14, # All the taxes associated with the transaction. }, "referrerUri": "A String", # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. - "searchQuery": "A String", # The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "searchQuery": "A String", # The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned. + "sessionId": "A String", # A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix. "uri": "A String", # Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. "userInfo": { # Information of an end user. # User information. "directUserRequest": True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent. - "ipAddress": "A String", # The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. - "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "ipAddress": "A String", # The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. + "userAgent": "A String", # User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set. "userId": "A String", # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. }, "visitorId": "A String", # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field. diff --git a/docs/dyn/run_v1.namespaces.configurations.html b/docs/dyn/run_v1.namespaces.configurations.html index c405905a950..8604930275b 100644 --- a/docs/dyn/run_v1.namespaces.configurations.html +++ b/docs/dyn/run_v1.namespaces.configurations.html @@ -173,7 +173,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -398,11 +398,11 @@

Method Details

Args: parent: string, The namespace from which the configurations should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -486,7 +486,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell diff --git a/docs/dyn/run_v1.namespaces.domainmappings.html b/docs/dyn/run_v1.namespaces.domainmappings.html index 85f0c0ab187..68187a02cab 100644 --- a/docs/dyn/run_v1.namespaces.domainmappings.html +++ b/docs/dyn/run_v1.namespaces.domainmappings.html @@ -164,7 +164,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, } @@ -237,7 +237,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, }
@@ -361,7 +361,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, }
@@ -372,11 +372,11 @@

Method Details

Args: parent: string, The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -450,7 +450,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, }, ], diff --git a/docs/dyn/run_v1.namespaces.revisions.html b/docs/dyn/run_v1.namespaces.revisions.html index b551af308bb..57c6c055b07 100644 --- a/docs/dyn/run_v1.namespaces.revisions.html +++ b/docs/dyn/run_v1.namespaces.revisions.html @@ -187,7 +187,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # Spec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -398,7 +398,7 @@

Method Details

}, ], "imageDigest": "A String", # ImageDigest holds the resolved digest for the image specified within .Spec.Container.Image. The digest is resolved during the creation of Revision. This field holds the digest value regardless of whether a tag or digest was originally specified in the Container object. - "logUrl": "A String", # Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. +optional + "logUrl": "A String", # Optional. Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Revision that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation, and the Ready condition's status is True or False. "serviceName": "A String", # Not currently used by Cloud Run. }, @@ -411,11 +411,11 @@

Method Details

Args: parent: string, The namespace from which the revisions should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -465,7 +465,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # Spec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -676,7 +676,7 @@

Method Details

}, ], "imageDigest": "A String", # ImageDigest holds the resolved digest for the image specified within .Spec.Container.Image. The digest is resolved during the creation of Revision. This field holds the digest value regardless of whether a tag or digest was originally specified in the Container object. - "logUrl": "A String", # Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. +optional + "logUrl": "A String", # Optional. Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Revision that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation, and the Ready condition's status is True or False. "serviceName": "A String", # Not currently used by Cloud Run. }, diff --git a/docs/dyn/run_v1.namespaces.routes.html b/docs/dyn/run_v1.namespaces.routes.html index 4f89da54259..2fdb6ad6c64 100644 --- a/docs/dyn/run_v1.namespaces.routes.html +++ b/docs/dyn/run_v1.namespaces.routes.html @@ -142,10 +142,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. Cloud Run currently supports a single configurationName. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -168,10 +168,10 @@

Method Details

"traffic": [ # Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -186,11 +186,11 @@

Method Details

Args: parent: string, The namespace from which the routes should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -243,10 +243,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. Cloud Run currently supports a single configurationName. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -269,10 +269,10 @@

Method Details

"traffic": [ # Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], diff --git a/docs/dyn/run_v1.namespaces.services.html b/docs/dyn/run_v1.namespaces.services.html index fac78569f99..c3f1735fdd2 100644 --- a/docs/dyn/run_v1.namespaces.services.html +++ b/docs/dyn/run_v1.namespaces.services.html @@ -177,7 +177,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -380,10 +380,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -408,10 +408,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -498,7 +498,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -701,10 +701,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -729,10 +729,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -870,7 +870,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -1073,10 +1073,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1101,10 +1101,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1119,11 +1119,11 @@

Method Details

Args: parent: string, The namespace from which the services should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -1207,7 +1207,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -1410,10 +1410,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1438,10 +1438,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1540,7 +1540,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -1743,10 +1743,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1771,10 +1771,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1861,7 +1861,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -2064,10 +2064,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -2092,10 +2092,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], diff --git a/docs/dyn/run_v1.projects.locations.configurations.html b/docs/dyn/run_v1.projects.locations.configurations.html index 0d6d9ccd6a4..678bcbe2e59 100644 --- a/docs/dyn/run_v1.projects.locations.configurations.html +++ b/docs/dyn/run_v1.projects.locations.configurations.html @@ -173,7 +173,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -398,11 +398,11 @@

Method Details

Args: parent: string, The namespace from which the configurations should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -486,7 +486,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell diff --git a/docs/dyn/run_v1.projects.locations.domainmappings.html b/docs/dyn/run_v1.projects.locations.domainmappings.html index 127eb6f7162..730caa6625b 100644 --- a/docs/dyn/run_v1.projects.locations.domainmappings.html +++ b/docs/dyn/run_v1.projects.locations.domainmappings.html @@ -164,7 +164,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, } @@ -237,7 +237,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, }
@@ -361,7 +361,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, }
@@ -372,11 +372,11 @@

Method Details

Args: parent: string, The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -450,7 +450,7 @@

Method Details

"type": "A String", # Resource record type. Example: `AAAA`. }, ], - "url": "A String", # Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional + "url": "A String", # Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. }, }, ], diff --git a/docs/dyn/run_v1.projects.locations.revisions.html b/docs/dyn/run_v1.projects.locations.revisions.html index 262af1e13e9..9364a2acd7d 100644 --- a/docs/dyn/run_v1.projects.locations.revisions.html +++ b/docs/dyn/run_v1.projects.locations.revisions.html @@ -187,7 +187,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # Spec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -398,7 +398,7 @@

Method Details

}, ], "imageDigest": "A String", # ImageDigest holds the resolved digest for the image specified within .Spec.Container.Image. The digest is resolved during the creation of Revision. This field holds the digest value regardless of whether a tag or digest was originally specified in the Container object. - "logUrl": "A String", # Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. +optional + "logUrl": "A String", # Optional. Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Revision that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation, and the Ready condition's status is True or False. "serviceName": "A String", # Not currently used by Cloud Run. }, @@ -411,11 +411,11 @@

Method Details

Args: parent: string, The namespace from which the revisions should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -465,7 +465,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # Spec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -676,7 +676,7 @@

Method Details

}, ], "imageDigest": "A String", # ImageDigest holds the resolved digest for the image specified within .Spec.Container.Image. The digest is resolved during the creation of Revision. This field holds the digest value regardless of whether a tag or digest was originally specified in the Container object. - "logUrl": "A String", # Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. +optional + "logUrl": "A String", # Optional. Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. "observedGeneration": 42, # ObservedGeneration is the 'Generation' of the Revision that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation, and the Ready condition's status is True or False. "serviceName": "A String", # Not currently used by Cloud Run. }, diff --git a/docs/dyn/run_v1.projects.locations.routes.html b/docs/dyn/run_v1.projects.locations.routes.html index 782ded073e3..7488d3d958b 100644 --- a/docs/dyn/run_v1.projects.locations.routes.html +++ b/docs/dyn/run_v1.projects.locations.routes.html @@ -142,10 +142,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. Cloud Run currently supports a single configurationName. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -168,10 +168,10 @@

Method Details

"traffic": [ # Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -186,11 +186,11 @@

Method Details

Args: parent: string, The namespace from which the routes should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -243,10 +243,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. Cloud Run currently supports a single configurationName. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -269,10 +269,10 @@

Method Details

"traffic": [ # Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], diff --git a/docs/dyn/run_v1.projects.locations.services.html b/docs/dyn/run_v1.projects.locations.services.html index 078d50c9646..fd6830f8b73 100644 --- a/docs/dyn/run_v1.projects.locations.services.html +++ b/docs/dyn/run_v1.projects.locations.services.html @@ -186,7 +186,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -389,10 +389,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -417,10 +417,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -507,7 +507,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -710,10 +710,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -738,10 +738,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -879,7 +879,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -1082,10 +1082,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1110,10 +1110,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1176,11 +1176,11 @@

Method Details

Args: parent: string, The namespace from which the services should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required) - continue: string, Optional encoded string to continue paging. + continue: string, Optional. Encoded string to continue paging. fieldSelector: string, Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run. includeUninitialized: boolean, Not currently used by Cloud Run. labelSelector: string, Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. - limit: integer, The maximum number of records that should be returned. + limit: integer, Optional. The maximum number of records that should be returned. resourceVersion: string, The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run. watch: boolean, Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run. x__xgafv: string, V1 error format. @@ -1264,7 +1264,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -1467,10 +1467,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1495,10 +1495,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1597,7 +1597,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -1800,10 +1800,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1828,10 +1828,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -1918,7 +1918,7 @@

Method Details

"uid": "A String", # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids }, "spec": { # RevisionSpec holds the desired state of the Revision (from the client). # RevisionSpec holds the desired state of the Revision (from the client). - "containerConcurrency": 42, # (Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. + "containerConcurrency": 42, # Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler. "containers": [ # Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided. The runtime contract is documented here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md { # A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime. "args": [ # (Optional) Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell @@ -2121,10 +2121,10 @@

Method Details

"traffic": [ # Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], @@ -2149,10 +2149,10 @@

Method Details

"traffic": [ # From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed. { # TrafficTarget holds a single entry of the routing table for a Route. "configurationName": "A String", # ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the "status.latestReadyRevisionName" of the referenced configuration changes, we will automatically migrate traffic from the prior "latest ready" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName. - "latestRevision": True or False, # LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional + "latestRevision": True or False, # Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. "percent": 42, # Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified. Cloud Run currently requires 100 percent for a single ConfigurationName TrafficTarget entry. "revisionName": "A String", # RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName. Providing RevisionName in spec is not currently supported by Cloud Run. - "tag": "A String", # Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional + "tag": "A String", # Optional. Tag is used to expose a dedicated url for referencing this target exclusively. "url": "A String", # Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.) }, ], diff --git a/docs/dyn/securitycenter_v1.folders.sources.findings.html b/docs/dyn/securitycenter_v1.folders.sources.findings.html index 07087311e6e..0f94527f446 100644 --- a/docs/dyn/securitycenter_v1.folders.sources.findings.html +++ b/docs/dyn/securitycenter_v1.folders.sources.findings.html @@ -189,6 +189,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -256,6 +265,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -288,6 +306,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -334,6 +361,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. diff --git a/docs/dyn/securitycenter_v1.organizations.sources.findings.html b/docs/dyn/securitycenter_v1.organizations.sources.findings.html index 51e02f1b81d..f9f7580de23 100644 --- a/docs/dyn/securitycenter_v1.organizations.sources.findings.html +++ b/docs/dyn/securitycenter_v1.organizations.sources.findings.html @@ -122,6 +122,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -154,6 +163,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -257,6 +275,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -324,6 +351,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -356,6 +392,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -402,6 +447,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. diff --git a/docs/dyn/securitycenter_v1.projects.sources.findings.html b/docs/dyn/securitycenter_v1.projects.sources.findings.html index 12097c74f30..d25a8dd50b4 100644 --- a/docs/dyn/securitycenter_v1.projects.sources.findings.html +++ b/docs/dyn/securitycenter_v1.projects.sources.findings.html @@ -189,6 +189,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -256,6 +265,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -288,6 +306,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. @@ -334,6 +361,15 @@

Method Details

"createTime": "A String", # The time at which the finding was created in Security Command Center. "eventTime": "A String", # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp. "externalUri": "A String", # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL. + "findingClass": "A String", # The class of the finding. + "indicator": { # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise # Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise + "domains": [ # List of domains associated to the Finding. + "A String", + ], + "ipAddresses": [ # List of ip addresses associated to the Finding. + "A String", + ], + }, "name": "A String", # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}" "parent": "A String", # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: "organizations/{organization_id}/sources/{source_id}" "resourceName": "A String", # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time. diff --git a/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.endpoints.html b/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.endpoints.html index 0d663c29a6e..a7ef488a114 100644 --- a/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.endpoints.html +++ b/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.endpoints.html @@ -112,7 +112,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -130,7 +130,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -172,7 +172,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -202,7 +202,7 @@

Method Details

"endpoints": [ # The list of endpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -238,7 +238,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -256,7 +256,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. diff --git a/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.html b/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.html index 0bf0efba232..0b0943ea803 100644 --- a/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.html +++ b/docs/dyn/servicedirectory_v1.projects.locations.namespaces.services.html @@ -128,13 +128,13 @@

Method Details

The object takes the form of: { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -154,13 +154,13 @@

Method Details

An object of the form: { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -204,13 +204,13 @@

Method Details

An object of the form: { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -286,13 +286,13 @@

Method Details

"nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no more results in the list. "services": [ # The list of services. { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -329,13 +329,13 @@

Method Details

The object takes the form of: { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -355,13 +355,13 @@

Method Details

An object of the form: { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -396,13 +396,13 @@

Method Details

{ # The response message for LookupService.ResolveService. "service": { # An individual service. A service contains a name and optional metadata. A service must exist before endpoints can be added to it. - "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "endpoints": [ # Output only. Endpoints associated with this service. Returned on LookupService.ResolveService. Control plane clients should use RegistrationService.ListEndpoints. { # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. - "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. + "annotations": { # Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. diff --git a/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.endpoints.html b/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.endpoints.html index b6ee470bfee..0bef8b648cb 100644 --- a/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.endpoints.html +++ b/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.endpoints.html @@ -113,7 +113,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -134,7 +134,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -179,7 +179,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -212,7 +212,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -251,7 +251,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -272,7 +272,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. diff --git a/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.html b/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.html index 693f6391047..ad9230c941f 100644 --- a/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.html +++ b/docs/dyn/servicedirectory_v1beta1.projects.locations.namespaces.services.html @@ -133,7 +133,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -142,7 +142,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. @@ -164,7 +164,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -173,7 +173,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. @@ -219,7 +219,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -228,7 +228,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. @@ -306,7 +306,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -315,7 +315,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. @@ -354,7 +354,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -363,7 +363,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. @@ -385,7 +385,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -394,7 +394,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. @@ -431,7 +431,7 @@

Method Details

{ # An individual endpoint that provides a service. The service must already exist to create an endpoint. "address": "A String", # Optional. An IPv4 or IPv6 address. Service Directory rejects bad addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]` * `[::1]:8080` Limited to 45 characters. "createTime": "A String", # Output only. The timestamp when the endpoint was created. - "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the endpoint in the format `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. @@ -440,7 +440,7 @@

Method Details

"updateTime": "A String", # Output only. The timestamp when the endpoint was last updated. }, ], - "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. + "metadata": { # Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory. "a_key": "A String", }, "name": "A String", # Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`. diff --git a/docs/dyn/slides_v1.presentations.html b/docs/dyn/slides_v1.presentations.html index d4022605ada..ebad4a78e9e 100644 --- a/docs/dyn/slides_v1.presentations.html +++ b/docs/dyn/slides_v1.presentations.html @@ -777,7 +777,1009 @@

Method Details

"isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. + "notesPage": { # A page in a presentation. # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. + "layoutProperties": { # The properties of Page are only relevant for pages with page_type LAYOUT. # Layout specific properties. Only set if page_type = LAYOUT. + "displayName": "A String", # The human-readable name of the layout. + "masterObjectId": "A String", # The object ID of the master that this layout is based on. + "name": "A String", # The name of the layout. + }, + "masterProperties": { # The properties of Page that are only relevant for pages with page_type MASTER. # Master specific properties. Only set if page_type = MASTER. + "displayName": "A String", # The human-readable name of the master. + }, + "notesProperties": { # The properties of Page that are only relevant for pages with page_type NOTES. # Notes specific properties. Only set if page_type = NOTES. + "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker notes for the corresponding slide. The actual shape may not always exist on the notes page. Inserting text using this object ID will automatically create the shape. In this case, the actual shape may have different object ID. The `GetPresentation` or `GetPage` action will always return the latest object ID. + }, + "objectId": "A String", # The object ID for this page. Object IDs used by Page and PageElement share the same namespace. + "pageElements": [ # The page elements rendered on the page. + { # A visual element rendered on a page. + "description": "A String", # The description of the page element. Combined with title to display alt text. The field is not supported for Group elements. + "elementGroup": { # A PageElement kind representing a joined collection of PageElements. # A collection of page elements joined as a single unit. + "children": [ # The collection of elements in the group. The minimum size of a group is 2. + # Object with schema name: PageElement + ], + }, + "image": { # A PageElement kind representing an image. # An image page element. + "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes. This URL is tagged with the account of the requester. Anyone with the URL effectively accesses the image as the original requester. Access to the image may be lost if the presentation's sharing settings change. + "imageProperties": { # The properties of the Image. # The properties of the image. + "brightness": 3.14, # The brightness effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect. This property is read-only. + "contrast": 3.14, # The contrast effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect. This property is read-only. + "cropProperties": { # The crop properties of an object enclosed in a container. For example, an Image. The crop properties is represented by the offsets of four edges which define a crop rectangle. The offsets are measured in percentage from the corresponding edges of the object's original bounding rectangle towards inside, relative to the object's original dimensions. - If the offset is in the interval (0, 1), the corresponding edge of crop rectangle is positioned inside of the object's original bounding rectangle. - If the offset is negative or greater than 1, the corresponding edge of crop rectangle is positioned outside of the object's original bounding rectangle. - If the left edge of the crop rectangle is on the right side of its right edge, the object will be flipped horizontally. - If the top edge of the crop rectangle is below its bottom edge, the object will be flipped vertically. - If all offsets and rotation angle is 0, the object is not cropped. After cropping, the content in the crop rectangle will be stretched to fit its container. # The crop properties of the image. If not set, the image is not cropped. This property is read-only. + "angle": 3.14, # The rotation angle of the crop window around its center, in radians. Rotation angle is applied after the offset. + "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located above the original bounding rectangle bottom edge, relative to the object's original height. + "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to the right of the original bounding rectangle left edge, relative to the object's original width. + "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located to the left of the original bounding rectangle right edge, relative to the object's original width. + "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located below the original bounding rectangle top edge, relative to the object's original height. + }, + "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "outline": { # The outline of a PageElement. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The outline of the image. If not set, the image has no outline. + "dashStyle": "A String", # The dash style of the outline. + "outlineFill": { # The fill of the outline. # The fill of the outline. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "propertyState": "A String", # The outline property state. Updating the outline on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no outline on a page element, set this field to `NOT_RENDERED`. In this case, any other outline fields set in the same request will be ignored. + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored. This property is read-only. + "name": "A String", # The name of the recolor effect. The name is determined from the `recolor_stops` by matching the gradient against the colors in the page's current color scheme. This property is read-only. + "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color stops. The colors in the gradient will replace the corresponding colors at the same position in the color palette and apply to the image. This property is read-only. + { # A color and position in a gradient band. + "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0, fully opaque. + "color": { # A themeable solid color value. # The color of the gradient stop. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + "position": 3.14, # The relative position of the color stop in the gradient band measured in percentage. The value should be in the interval [0.0, 1.0]. + }, + ], + }, + "shadow": { # The shadow properties of a page element. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The shadow of the image. If not set, the image has no shadow. This property is read-only. + "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate, scale and skew of the shadow. This property is read-only. + "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0. + "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the shadow becomes. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "color": { # A themeable solid color value. # The shadow color value. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + "propertyState": "A String", # The shadow property state. Updating the shadow on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no shadow on a page element, set this field to `NOT_RENDERED`. In this case, any other shadow fields set in the same request will be ignored. + "rotateWithShape": True or False, # Whether the shadow should rotate with the shape. This property is read-only. + "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] to transform source coordinates (x,y) into destination coordinates (x', y') according to: x' x = shear_y scale_y translate_y 1 [ 1 ] After transformation, x' = scale_x * x + shear_x * y + translate_x; y' = scale_y * y + shear_y * x + translate_y; This message is therefore composed of these six matrix elements. # Transform that encodes the translate, scale, and skew of the shadow, relative to the alignment position. + "scaleX": 3.14, # The X coordinate scaling element. + "scaleY": 3.14, # The Y coordinate scaling element. + "shearX": 3.14, # The X coordinate shearing element. + "shearY": 3.14, # The Y coordinate shearing element. + "translateX": 3.14, # The X coordinate translation element. + "translateY": 3.14, # The Y coordinate translation element. + "unit": "A String", # The units for translate elements. + }, + "type": "A String", # The type of the shadow. This property is read-only. + }, + "transparency": 3.14, # The transparency effect of the image. The value should be in the interval [0.0, 1.0], where 0 means no effect and 1 means completely transparent. This property is read-only. + }, + "sourceUrl": "A String", # The source URL is the URL used to insert the image. The source URL can be empty. + }, + "line": { # A PageElement kind representing a non-connector line, straight connector, curved connector, or bent connector. # A line page element. + "lineCategory": "A String", # The category of the line. It matches the `category` specified in CreateLineRequest, and can be updated with UpdateLineCategoryRequest. + "lineProperties": { # The properties of the Line. When unset, these fields default to values that match the appearance of new lines created in the Slides editor. # The properties of the line. + "dashStyle": "A String", # The dash style of the line. + "endArrow": "A String", # The style of the arrow at the end of the line. + "endConnection": { # The properties for one end of a Line connection. # The connection at the end of the line. If unset, there is no connection. Only lines with a Type indicating it is a "connector" can have an `end_connection`. + "connectedObjectId": "A String", # The object ID of the connected page element. Some page elements, such as groups, tables, and lines do not have connection sites and therefore cannot be connected to a connector line. + "connectionSiteIndex": 42, # The index of the connection site on the connected page element. In most cases, it corresponds to the predefined connection site index from the ECMA-376 standard. More information on those connection sites can be found in the description of the "cnx" attribute in section 20.1.9.9 and Annex H. "Predefined DrawingML Shape and Text Geometries" of "Office Open XML File Formats-Fundamentals and Markup Language Reference", part 1 of [ECMA-376 5th edition] (http://www.ecma-international.org/publications/standards/Ecma-376.htm). The position of each connection site can also be viewed from Slides editor. + }, + "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new lines created in the Slides editor. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "startArrow": "A String", # The style of the arrow at the beginning of the line. + "startConnection": { # The properties for one end of a Line connection. # The connection at the beginning of the line. If unset, there is no connection. Only lines with a Type indicating it is a "connector" can have a `start_connection`. + "connectedObjectId": "A String", # The object ID of the connected page element. Some page elements, such as groups, tables, and lines do not have connection sites and therefore cannot be connected to a connector line. + "connectionSiteIndex": 42, # The index of the connection site on the connected page element. In most cases, it corresponds to the predefined connection site index from the ECMA-376 standard. More information on those connection sites can be found in the description of the "cnx" attribute in section 20.1.9.9 and Annex H. "Predefined DrawingML Shape and Text Geometries" of "Office Open XML File Formats-Fundamentals and Markup Language Reference", part 1 of [ECMA-376 5th edition] (http://www.ecma-international.org/publications/standards/Ecma-376.htm). The position of each connection site can also be viewed from Slides editor. + }, + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + "lineType": "A String", # The type of the line. + }, + "objectId": "A String", # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace. + "shape": { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape. + "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field. + "index": 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values. + "parentObjectId": "A String", # The object ID of this shape's parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape. + "type": "A String", # The type of the placeholder. + }, + "shapeProperties": { # The properties of a Shape. If the shape is a placeholder shape as determined by the placeholder field, then these properties may be inherited from a parent placeholder shape. Determining the rendered value of the property depends on the corresponding property_state field value. Any text autofit settings on the shape are automatically deactivated by requests that can impact how text fits in the shape. # The properties of the shape. + "autofit": { # The autofit properties of a Shape. # The autofit properties of the shape. This property is only set for shapes that allow text. + "autofitType": "A String", # The autofit type of the shape. If the autofit type is AUTOFIT_TYPE_UNSPECIFIED, the autofit type is inherited from a parent placeholder if it exists. The field is automatically set to NONE if a request is made that might affect text fitting within its bounding text box. In this case the font_scale is applied to the font_size and the line_spacing_reduction is applied to the line_spacing. Both properties are also reset to default values. + "fontScale": 3.14, # The font scale applied to the shape. For shapes with autofit_type NONE or SHAPE_AUTOFIT, this value is the default value of 1. For TEXT_AUTOFIT, this value multiplied by the font_size gives the font size that is rendered in the editor. This property is read-only. + "lineSpacingReduction": 3.14, # The line spacing reduction applied to the shape. For shapes with autofit_type NONE or SHAPE_AUTOFIT, this value is the default value of 0. For TEXT_AUTOFIT, this value subtracted from the line_spacing gives the line spacing that is rendered in the editor. This property is read-only. + }, + "contentAlignment": "A String", # The alignment of the content in the shape. If unspecified, the alignment is inherited from a parent placeholder if it exists. If the shape has no parent, the default alignment matches the alignment for new shapes created in the Slides editor. + "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links are not inherited from parent placeholders. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "outline": { # The outline of a PageElement. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The outline of the shape. If unset, the outline is inherited from a parent placeholder if it exists. If the shape has no parent, then the default outline depends on the shape type, matching the defaults for new shapes created in the Slides editor. + "dashStyle": "A String", # The dash style of the outline. + "outlineFill": { # The fill of the outline. # The fill of the outline. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "propertyState": "A String", # The outline property state. Updating the outline on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no outline on a page element, set this field to `NOT_RENDERED`. In this case, any other outline fields set in the same request will be ignored. + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + "shadow": { # The shadow properties of a page element. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The shadow properties of the shape. If unset, the shadow is inherited from a parent placeholder if it exists. If the shape has no parent, then the default shadow matches the defaults for new shapes created in the Slides editor. This property is read-only. + "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate, scale and skew of the shadow. This property is read-only. + "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0. + "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the shadow becomes. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "color": { # A themeable solid color value. # The shadow color value. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + "propertyState": "A String", # The shadow property state. Updating the shadow on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no shadow on a page element, set this field to `NOT_RENDERED`. In this case, any other shadow fields set in the same request will be ignored. + "rotateWithShape": True or False, # Whether the shadow should rotate with the shape. This property is read-only. + "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] to transform source coordinates (x,y) into destination coordinates (x', y') according to: x' x = shear_y scale_y translate_y 1 [ 1 ] After transformation, x' = scale_x * x + shear_x * y + translate_x; y' = scale_y * y + shear_y * x + translate_y; This message is therefore composed of these six matrix elements. # Transform that encodes the translate, scale, and skew of the shadow, relative to the alignment position. + "scaleX": 3.14, # The X coordinate scaling element. + "scaleY": 3.14, # The Y coordinate scaling element. + "shearX": 3.14, # The X coordinate shearing element. + "shearY": 3.14, # The Y coordinate shearing element. + "translateX": 3.14, # The X coordinate translation element. + "translateY": 3.14, # The Y coordinate translation element. + "unit": "A String", # The units for translate elements. + }, + "type": "A String", # The type of the shadow. This property is read-only. + }, + "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is inherited from a parent placeholder if it exists. If the shape has no parent, then the default background fill depends on the shape type, matching the defaults for new shapes created in the Slides editor. + "propertyState": "A String", # The background fill property state. Updating the fill on a shape will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no fill on a shape, set this field to `NOT_RENDERED`. In this case, any other fill fields set in the same request will be ignored. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + }, + "shapeType": "A String", # The type of the shape. + "text": { # The general text content. The text must reside in a compatible shape (e.g. text box or rectangle) or a table cell in a page. # The text content of the shape. + "lists": { # The bulleted lists contained in this text, keyed by list ID. + "a_key": { # A List describes the look and feel of bullets belonging to paragraphs associated with a list. A paragraph that is part of a list has an implicit reference to that list's ID. + "listId": "A String", # The ID of the list. + "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated level. A list has at most nine levels of nesting, so the possible values for the keys of this map are 0 through 8, inclusive. + "a_key": { # Contains properties describing the look and feel of a list bullet at a given level of nesting. + "bulletStyle": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The style of a bullet at this level of nesting. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + }, + }, + }, + }, + "textElements": [ # The text contents broken down into its component parts, including styling information. This property is read-only. + { # A TextElement describes the content of a range of indices in the text content of a Shape or TableCell. + "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically replaced with content that can change over time. + "content": "A String", # The rendered content of this auto text, if available. + "style": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The styling applied to this auto text. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + "type": "A String", # The type of this auto text. + }, + "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code units. + "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph. The `start_index` and `end_index` of this TextElement represent the range of the paragraph. Other TextElements with an index range contained inside this paragraph's range are considered to be part of this paragraph. The range of indices of two separate paragraphs will never overlap. + "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not belong to a list. + "bulletStyle": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The paragraph specific text style applied to this bullet. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + "glyph": "A String", # The rendered bullet glyph for this paragraph. + "listId": "A String", # The ID of the list this paragraph belongs to. + "nestingLevel": 42, # The nesting level of this paragraph in the list. + }, + "style": { # Styles that apply to a whole paragraph. If this text is contained in a shape with a parent placeholder, then these paragraph styles may be inherited from the parent. Which paragraph styles are inherited depend on the nesting level of lists: * A paragraph not in a list will inherit its paragraph style from the paragraph at the 0 nesting level of the list inside the parent placeholder. * A paragraph in a list will inherit its paragraph style from the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited paragraph styles are represented as unset fields in this message. # The paragraph's style + "alignment": "A String", # The text alignment for this paragraph. + "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to LEFT_TO_RIGHT since text direction is not inherited. + "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to the end of the text, based on the current text direction. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to the start of the text, based on the current text direction. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal is represented as 100.0. If unset, the value is inherited from the parent. + "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space below the paragraph. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "spacingMode": "A String", # The spacing mode for the paragraph. + }, + }, + "startIndex": 42, # The zero-based start index of this text element, in Unicode code units. + "textRun": { # A TextElement kind that represents a run of text that all has the same styling. # A TextElement representing a run of text where all of the characters in the run have the same TextStyle. The `start_index` and `end_index` of TextRuns will always be fully contained in the index range of a single `paragraph_marker` TextElement. In other words, a TextRun will never span multiple paragraphs. + "content": "A String", # The text of this run. + "style": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The styling applied to this run. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + }, + }, + ], + }, + }, + "sheetsChart": { # A PageElement kind representing a linked chart embedded from Google Sheets. # A linked chart embedded from Google Sheets. Unlinked charts are represented as images. + "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is embedded. + "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30 minutes. This URL is tagged with the account of the requester. Anyone with the URL effectively accesses the image as the original requester. Access to the image may be lost if the presentation's sharing settings change. + "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart. + "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image. + "brightness": 3.14, # The brightness effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect. This property is read-only. + "contrast": 3.14, # The contrast effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect. This property is read-only. + "cropProperties": { # The crop properties of an object enclosed in a container. For example, an Image. The crop properties is represented by the offsets of four edges which define a crop rectangle. The offsets are measured in percentage from the corresponding edges of the object's original bounding rectangle towards inside, relative to the object's original dimensions. - If the offset is in the interval (0, 1), the corresponding edge of crop rectangle is positioned inside of the object's original bounding rectangle. - If the offset is negative or greater than 1, the corresponding edge of crop rectangle is positioned outside of the object's original bounding rectangle. - If the left edge of the crop rectangle is on the right side of its right edge, the object will be flipped horizontally. - If the top edge of the crop rectangle is below its bottom edge, the object will be flipped vertically. - If all offsets and rotation angle is 0, the object is not cropped. After cropping, the content in the crop rectangle will be stretched to fit its container. # The crop properties of the image. If not set, the image is not cropped. This property is read-only. + "angle": 3.14, # The rotation angle of the crop window around its center, in radians. Rotation angle is applied after the offset. + "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located above the original bounding rectangle bottom edge, relative to the object's original height. + "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to the right of the original bounding rectangle left edge, relative to the object's original width. + "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located to the left of the original bounding rectangle right edge, relative to the object's original width. + "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located below the original bounding rectangle top edge, relative to the object's original height. + }, + "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "outline": { # The outline of a PageElement. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The outline of the image. If not set, the image has no outline. + "dashStyle": "A String", # The dash style of the outline. + "outlineFill": { # The fill of the outline. # The fill of the outline. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "propertyState": "A String", # The outline property state. Updating the outline on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no outline on a page element, set this field to `NOT_RENDERED`. In this case, any other outline fields set in the same request will be ignored. + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored. This property is read-only. + "name": "A String", # The name of the recolor effect. The name is determined from the `recolor_stops` by matching the gradient against the colors in the page's current color scheme. This property is read-only. + "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color stops. The colors in the gradient will replace the corresponding colors at the same position in the color palette and apply to the image. This property is read-only. + { # A color and position in a gradient band. + "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0, fully opaque. + "color": { # A themeable solid color value. # The color of the gradient stop. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + "position": 3.14, # The relative position of the color stop in the gradient band measured in percentage. The value should be in the interval [0.0, 1.0]. + }, + ], + }, + "shadow": { # The shadow properties of a page element. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The shadow of the image. If not set, the image has no shadow. This property is read-only. + "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate, scale and skew of the shadow. This property is read-only. + "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0. + "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the shadow becomes. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "color": { # A themeable solid color value. # The shadow color value. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + "propertyState": "A String", # The shadow property state. Updating the shadow on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no shadow on a page element, set this field to `NOT_RENDERED`. In this case, any other shadow fields set in the same request will be ignored. + "rotateWithShape": True or False, # Whether the shadow should rotate with the shape. This property is read-only. + "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] to transform source coordinates (x,y) into destination coordinates (x', y') according to: x' x = shear_y scale_y translate_y 1 [ 1 ] After transformation, x' = scale_x * x + shear_x * y + translate_x; y' = scale_y * y + shear_y * x + translate_y; This message is therefore composed of these six matrix elements. # Transform that encodes the translate, scale, and skew of the shadow, relative to the alignment position. + "scaleX": 3.14, # The X coordinate scaling element. + "scaleY": 3.14, # The Y coordinate scaling element. + "shearX": 3.14, # The X coordinate shearing element. + "shearY": 3.14, # The Y coordinate shearing element. + "translateX": 3.14, # The X coordinate translation element. + "translateY": 3.14, # The Y coordinate translation element. + "unit": "A String", # The units for translate elements. + }, + "type": "A String", # The type of the shadow. This property is read-only. + }, + "transparency": 3.14, # The transparency effect of the image. The value should be in the interval [0.0, 1.0], where 0 means no effect and 1 means completely transparent. This property is read-only. + }, + }, + "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart. + }, + "size": { # A width and height. # The size of the page element. + "height": { # A magnitude in a single direction in the specified units. # The height of the object. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "width": { # A magnitude in a single direction in the specified units. # The width of the object. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + "table": { # A PageElement kind representing a table. # A table page element. + "columns": 42, # Number of columns in the table. + "horizontalBorderRows": [ # Properties of horizontal cell borders. A table's horizontal cell borders are represented as a grid. The grid has one more row than the number of rows in the table and the same number of columns as the table. For example, if the table is 3 x 3, its horizontal borders will be represented as a grid with 4 rows and 3 columns. + { # Contents of each border row in a table. + "tableBorderCells": [ # Properties of each border cell. When a border's adjacent table cells are merged, it is not included in the response. + { # The properties of each border cell. + "location": { # A location of a single table cell within a table. # The location of the border within the border table. + "columnIndex": 42, # The 0-based column index. + "rowIndex": 42, # The 0-based row index. + }, + "tableBorderProperties": { # The border styling properties of the TableBorderCell. # The border properties. + "dashStyle": "A String", # The dash style of the border. + "tableBorderFill": { # The fill of the border. # The fill of the table border. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the border. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + }, + ], + }, + ], + "rows": 42, # Number of rows in the table. + "tableColumns": [ # Properties of each column. + { # Properties of each column in a table. + "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + ], + "tableRows": [ # Properties and contents of each row. Cells that span multiple rows are contained in only one of these rows and have a row_span greater than 1. + { # Properties and contents of each row in a table. + "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "tableCells": [ # Properties and contents of each cell. Cells that span multiple columns are represented only once with a column_span greater than 1. As a result, the length of this collection does not always match the number of columns of the entire table. + { # Properties and contents of each table cell. + "columnSpan": 42, # Column span of the cell. + "location": { # A location of a single table cell within a table. # The location of the cell within the table. + "columnIndex": 42, # The 0-based column index. + "rowIndex": 42, # The 0-based row index. + }, + "rowSpan": 42, # Row span of the cell. + "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell. + "contentAlignment": "A String", # The alignment of the content in the table cell. The default alignment matches the alignment for newly created table cells in the Slides editor. + "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill for newly created table cells in the Slides editor. + "propertyState": "A String", # The background fill property state. Updating the fill on a table cell will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no fill on a table cell, set this field to `NOT_RENDERED`. In this case, any other fill fields set in the same request will be ignored. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + }, + "text": { # The general text content. The text must reside in a compatible shape (e.g. text box or rectangle) or a table cell in a page. # The text content of the cell. + "lists": { # The bulleted lists contained in this text, keyed by list ID. + "a_key": { # A List describes the look and feel of bullets belonging to paragraphs associated with a list. A paragraph that is part of a list has an implicit reference to that list's ID. + "listId": "A String", # The ID of the list. + "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated level. A list has at most nine levels of nesting, so the possible values for the keys of this map are 0 through 8, inclusive. + "a_key": { # Contains properties describing the look and feel of a list bullet at a given level of nesting. + "bulletStyle": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The style of a bullet at this level of nesting. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + }, + }, + }, + }, + "textElements": [ # The text contents broken down into its component parts, including styling information. This property is read-only. + { # A TextElement describes the content of a range of indices in the text content of a Shape or TableCell. + "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically replaced with content that can change over time. + "content": "A String", # The rendered content of this auto text, if available. + "style": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The styling applied to this auto text. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + "type": "A String", # The type of this auto text. + }, + "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code units. + "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph. The `start_index` and `end_index` of this TextElement represent the range of the paragraph. Other TextElements with an index range contained inside this paragraph's range are considered to be part of this paragraph. The range of indices of two separate paragraphs will never overlap. + "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not belong to a list. + "bulletStyle": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The paragraph specific text style applied to this bullet. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + "glyph": "A String", # The rendered bullet glyph for this paragraph. + "listId": "A String", # The ID of the list this paragraph belongs to. + "nestingLevel": 42, # The nesting level of this paragraph in the list. + }, + "style": { # Styles that apply to a whole paragraph. If this text is contained in a shape with a parent placeholder, then these paragraph styles may be inherited from the parent. Which paragraph styles are inherited depend on the nesting level of lists: * A paragraph not in a list will inherit its paragraph style from the paragraph at the 0 nesting level of the list inside the parent placeholder. * A paragraph in a list will inherit its paragraph style from the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited paragraph styles are represented as unset fields in this message. # The paragraph's style + "alignment": "A String", # The text alignment for this paragraph. + "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to LEFT_TO_RIGHT since text direction is not inherited. + "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to the end of the text, based on the current text direction. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to the start of the text, based on the current text direction. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal is represented as 100.0. If unset, the value is inherited from the parent. + "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space below the paragraph. If unset, the value is inherited from the parent. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "spacingMode": "A String", # The spacing mode for the paragraph. + }, + }, + "startIndex": 42, # The zero-based start index of this text element, in Unicode code units. + "textRun": { # A TextElement kind that represents a run of text that all has the same styling. # A TextElement representing a run of text where all of the characters in the run have the same TextStyle. The `start_index` and `end_index` of TextRuns will always be fully contained in the index range of a single `paragraph_marker` TextElement. In other words, a TextRun will never span multiple paragraphs. + "content": "A String", # The text of this run. + "style": { # Represents the styling that can be applied to a TextRun. If this text is contained in a shape with a parent placeholder, then these text styles may be inherited from the parent. Which text styles are inherited depend on the nesting level of lists: * A text run in a paragraph that is not in a list will inherit its text style from the the newline character in the paragraph at the 0 nesting level of the list inside the parent placeholder. * A text run in a paragraph that is in a list will inherit its text style from the newline character in the paragraph at its corresponding nesting level of the list inside the parent placeholder. Inherited text styles are represented as unset fields in this message. If text is contained in a shape without a parent placeholder, unsetting these fields will revert the style to a value matching the defaults in the Slides editor. # The styling applied to this run. + "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "baselineOffset": "A String", # The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field. + "bold": True or False, # Whether or not the text is rendered as bold. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. Some fonts can affect the weight of the text. If an update request specifies values for both `font_family` and `bold`, the explicitly-set `bold` value is used. + "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in points. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or transparent, depending on if the `opaque_color` field in it is set. + "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents a transparent color. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "italic": True or False, # Whether or not the text is italicized. + "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be set to ThemeColorType.HYPERLINK and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `"ABC\n123"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request. + "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this presentation with this ID. A page with this ID may not exist. + "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation, addressed by its position. + "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index in the presentation. There may not be a slide at this index. + "url": "A String", # If set, indicates this is a link to the external web page at this URL. + }, + "smallCaps": True or False, # Whether or not the text is in small capital letters. + "strikethrough": True or False, # Whether or not the text is struck through. + "underline": True or False, # Whether or not the text is underlined. + "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This field is an extension of `font_family` meant to support explicit font weights without breaking backwards compatibility. As such, when reading the style of a range of text, the value of `weighted_font_family#font_family` will always be equal to that of `font_family`. However, when writing, if both fields are included in the field mask (either explicitly or through the wildcard `"*"`), their values are reconciled as follows: * If `font_family` is set and `weighted_font_family` is not, the value of `font_family` is applied with weight `400` ("normal"). * If both fields are set, the value of `font_family` must match that of `weighted_font_family#font_family`. If so, the font family and weight of `weighted_font_family` is applied. Otherwise, a 400 bad request error is returned. * If `weighted_font_family` is set and `font_family` is not, the font family and weight of `weighted_font_family` is applied. * If neither field is set, the font family and weight of the text inherit from the parent. Note that these properties cannot inherit separately from each other. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned. + "fontFamily": "A String", # The font family of the text. The font family can be any font from the Font menu in Slides or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`. + "weight": 42, # The rendered weight of the text. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. Weights greater than or equal to `700` are considered bold, and weights less than `700`are not bold. The default value is `400` ("normal"). + }, + }, + }, + }, + ], + }, + }, + ], + "tableRowProperties": { # Properties of each row in a table. # Properties of the row. + "minRowHeight": { # A magnitude in a single direction in the specified units. # Minimum height of the row. The row will be rendered in the Slides editor at a height equal to or greater than this value in order to show all the text in the row's cell(s). + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + }, + ], + "verticalBorderRows": [ # Properties of vertical cell borders. A table's vertical cell borders are represented as a grid. The grid has the same number of rows as the table and one more column than the number of columns in the table. For example, if the table is 3 x 3, its vertical borders will be represented as a grid with 3 rows and 4 columns. + { # Contents of each border row in a table. + "tableBorderCells": [ # Properties of each border cell. When a border's adjacent table cells are merged, it is not included in the response. + { # The properties of each border cell. + "location": { # A location of a single table cell within a table. # The location of the border within the border table. + "columnIndex": 42, # The 0-based column index. + "rowIndex": 42, # The 0-based row index. + }, + "tableBorderProperties": { # The border styling properties of the TableBorderCell. # The border properties. + "dashStyle": "A String", # The dash style of the border. + "tableBorderFill": { # The fill of the border. # The fill of the table border. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the border. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + }, + ], + }, + ], + }, + "title": "A String", # The title of the page element. Combined with description to display alt text. The field is not supported for Group elements. + "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] to transform source coordinates (x,y) into destination coordinates (x', y') according to: x' x = shear_y scale_y translate_y 1 [ 1 ] After transformation, x' = scale_x * x + shear_x * y + translate_x; y' = scale_y * y + shear_y * x + translate_y; This message is therefore composed of these six matrix elements. # The transform of the page element. The visual appearance of the page element is determined by its absolute transform. To compute the absolute transform, preconcatenate a page element's transform with the transforms of all of its parent groups. If the page element is not in a group, its absolute transform is the same as the value in this field. The initial transform for the newly created Group is always the identity transform. + "scaleX": 3.14, # The X coordinate scaling element. + "scaleY": 3.14, # The Y coordinate scaling element. + "shearX": 3.14, # The X coordinate shearing element. + "shearY": 3.14, # The Y coordinate shearing element. + "translateX": 3.14, # The X coordinate translation element. + "translateY": 3.14, # The Y coordinate translation element. + "unit": "A String", # The units for translate elements. + }, + "video": { # A PageElement kind representing a video. # A video page element. + "id": "A String", # The video source's unique identifier for this video. + "source": "A String", # The video source. + "url": "A String", # An URL to a video. The URL is valid as long as the source video exists and sharing settings do not change. + "videoProperties": { # The properties of the Video. # The properties of the video. + "autoPlay": True or False, # Whether to enable video autoplay when the page is displayed in present mode. Defaults to false. + "end": 42, # The time at which to end playback, measured in seconds from the beginning of the video. If set, the end time should be after the start time. If not set or if you set this to a value that exceeds the video's length, the video will be played until its end. + "mute": True or False, # Whether to mute the audio during video playback. Defaults to false. + "outline": { # The outline of a PageElement. If these fields are unset, they may be inherited from a parent placeholder if it exists. If there is no parent, the fields will default to the value used for new page elements created in the Slides editor, which may depend on the page element kind. # The outline of the video. The default outline matches the defaults for new videos created in the Slides editor. + "dashStyle": "A String", # The dash style of the outline. + "outlineFill": { # The fill of the outline. # The fill of the outline. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + }, + "propertyState": "A String", # The outline property state. Updating the outline on a page element will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no outline on a page element, set this field to `NOT_RENDERED`. In this case, any other outline fields set in the same request will be ignored. + "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + "start": 42, # The time at which to start playback, measured in seconds from the beginning of the video. If set, the start time should be before the end time. If you set this to a value that exceeds the video's length in seconds, the video will be played from the last second. If not set, the video will be played from the beginning. + }, + }, + "wordArt": { # A PageElement kind representing word art. # A word art page element. + "renderedText": "A String", # The text rendered as word art. + }, + }, + ], + "pageProperties": { # The properties of the Page. The page will inherit properties from the parent page. Depending on the page type the hierarchy is defined in either SlideProperties or LayoutProperties. # The properties of the page. + "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from a parent page. If the page has no parent, the color scheme uses a default Slides color scheme, matching the defaults in the Slides editor. Only the concrete colors of the first 12 ThemeColorTypes are editable. In addition, only the color scheme on `Master` pages can be updated. To update the field, a color scheme containing mappings from all the first 12 ThemeColorTypes to their concrete colors must be provided. Colors for the remaining ThemeColorTypes will be ignored. + "colors": [ # The ThemeColorType and corresponding concrete color pairs. + { # A pair mapping a theme color type to the concrete color it represents. + "color": { # An RGB color. # The concrete color corresponding to the theme color type above. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "type": "A String", # The type of the theme color. + }, + ], + }, + "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited from a parent page if it exists. If the page has no parent, then the background fill defaults to the corresponding fill in the Slides editor. + "propertyState": "A String", # The background fill property state. Updating the fill on a page will implicitly update this field to `RENDERED`, unless another value is specified in the same request. To have no fill on a page, set this field to `NOT_RENDERED`. In this case, any other fill fields set in the same request will be ignored. + "solidFill": { # A solid color fill. The page or page element is filled entirely with the specified color value. If any field is unset, its value may be inherited from a parent placeholder if it exists. # Solid color fill. + "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. + "color": { # A themeable solid color value. # The color value of the solid fill. + "rgbColor": { # An RGB color. # An opaque RGB color. + "blue": 3.14, # The blue component of the color, from 0.0 to 1.0. + "green": 3.14, # The green component of the color, from 0.0 to 1.0. + "red": 3.14, # The red component of the color, from 0.0 to 1.0. + }, + "themeColor": "A String", # An opaque theme color. + }, + }, + "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with the specified picture. The picture is stretched to fit its container. # Stretched picture fill. + "contentUrl": "A String", # Reading the content_url: An URL to a picture with a default lifetime of 30 minutes. This URL is tagged with the account of the requester. Anyone with the URL effectively accesses the picture as the original requester. Access to the picture may be lost if the presentation's sharing settings change. Writing the content_url: The picture is fetched once at insertion time and a copy is stored for display inside the presentation. Pictures must be less than 50MB in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF format. The provided URL can be at most 2 kB in length. + "size": { # A width and height. # The original size of the picture fill. This field is read-only. + "height": { # A magnitude in a single direction in the specified units. # The height of the object. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + "width": { # A magnitude in a single direction in the specified units. # The width of the object. + "magnitude": 3.14, # The magnitude. + "unit": "A String", # The units for magnitude. + }, + }, + }, + }, + }, + "pageType": "A String", # The type of the page. + "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. + }, }, }, "updateSlidesPosition": { # Updates the position of slides in the presentation. # Updates the position of a set of slides in the presentation. @@ -2040,12 +3042,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag. @@ -3051,12 +4048,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes: - Placeholder shapes on a notes master contain the default text styles and shape properties of all placeholder shapes on notes pages. Specifically, a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a `BODY` placeholder shape contains the speaker notes. - The notes master page properties define the common page properties inherited by all notes pages. - Any other shapes on the notes master appear on all notes pages. The notes master is read-only. @@ -4060,12 +5052,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, "pageSize": { # A width and height. # The size of pages in the presentation. "height": { # A magnitude in a single direction in the specified units. # The height of the object. @@ -5081,12 +6068,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "title": "A String", # The title of the presentation. @@ -6103,12 +7085,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag. @@ -7114,12 +8091,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes: - Placeholder shapes on a notes master contain the default text styles and shape properties of all placeholder shapes on notes pages. Specifically, a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a `BODY` placeholder shape contains the speaker notes. - The notes master page properties define the common page properties inherited by all notes pages. - Any other shapes on the notes master appear on all notes pages. The notes master is read-only. @@ -8123,12 +9095,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, "pageSize": { # A width and height. # The size of pages in the presentation. "height": { # A magnitude in a single direction in the specified units. # The height of the object. @@ -9144,12 +10111,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "title": "A String", # The title of the presentation. @@ -10173,12 +11135,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag. @@ -11184,12 +12141,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes: - Placeholder shapes on a notes master contain the default text styles and shape properties of all placeholder shapes on notes pages. Specifically, a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a `BODY` placeholder shape contains the speaker notes. - The notes master page properties define the common page properties inherited by all notes pages. - Any other shapes on the notes master appear on all notes pages. The notes master is read-only. @@ -12193,12 +13145,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, "pageSize": { # A width and height. # The size of pages in the presentation. "height": { # A magnitude in a single direction in the specified units. # The height of the object. @@ -13214,12 +14161,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }, ], "title": "A String", # The title of the presentation. diff --git a/docs/dyn/slides_v1.presentations.pages.html b/docs/dyn/slides_v1.presentations.pages.html index bb9f82cf666..e43aa02813c 100644 --- a/docs/dyn/slides_v1.presentations.pages.html +++ b/docs/dyn/slides_v1.presentations.pages.html @@ -1105,12 +1105,7 @@

Method Details

}, "pageType": "A String", # The type of the page. "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes. - "slideProperties": { # The properties of Page that are only relevant for pages with page_type SLIDE. # Slide specific properties. Only set if page_type = SLIDE. - "isSkipped": True or False, # Whether the slide is skipped in the presentation mode. Defaults to false. - "layoutObjectId": "A String", # The object ID of the layout that this slide is based on. This property is read-only. - "masterObjectId": "A String", # The object ID of the master that this slide is based on. This property is read-only. - "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only. - }, + "slideProperties": # Object with schema name: SlideProperties # Slide specific properties. Only set if page_type = SLIDE. }
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html index 963628b3781..31c2d2fbaee 100644 --- a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html +++ b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html @@ -421,7 +421,14 @@

Method Details

"a_key": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "structType": { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. + { # Message representing a single field of a struct. + "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. + "type": # Object with schema name: Type # The type of the field. + }, + ], + }, }, }, "params": { # Parameter names and values that bind to placeholders in the DML string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `"WHERE id > @msg_id AND id < @msg_id + 100"` It is an error to execute a SQL statement with unbound parameters. @@ -479,11 +486,7 @@

Method Details

"fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. { # Message representing a single field of a struct. "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. - "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field. - "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. - "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. - }, + "type": # Object with schema name: Type # The type of the field. }, ], }, @@ -560,7 +563,14 @@

Method Details

"a_key": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "structType": { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. + { # Message representing a single field of a struct. + "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. + "type": # Object with schema name: Type # The type of the field. + }, + ], + }, }, }, "params": { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `"WHERE id > @msg_id AND id < @msg_id + 100"` It is an error to execute a SQL statement with unbound parameters. @@ -627,11 +637,7 @@

Method Details

"fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. { # Message representing a single field of a struct. "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. - "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field. - "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. - "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. - }, + "type": # Object with schema name: Type # The type of the field. }, ], }, @@ -697,7 +703,14 @@

Method Details

"a_key": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "structType": { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. + { # Message representing a single field of a struct. + "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. + "type": # Object with schema name: Type # The type of the field. + }, + ], + }, }, }, "params": { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `"WHERE id > @msg_id AND id < @msg_id + 100"` It is an error to execute a SQL statement with unbound parameters. @@ -765,11 +778,7 @@

Method Details

"fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. { # Message representing a single field of a struct. "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. - "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field. - "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. - "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. - }, + "type": # Object with schema name: Type # The type of the field. }, ], }, @@ -904,7 +913,14 @@

Method Details

"a_key": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "structType": { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct's fields. + "fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. + { # Message representing a single field of a struct. + "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. + "type": # Object with schema name: Type # The type of the field. + }, + ], + }, }, }, "params": { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `"WHERE id > @msg_id AND id < @msg_id + 100"` It is an error to execute a SQL statement with unbound parameters. @@ -1160,11 +1176,7 @@

Method Details

"fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. { # Message representing a single field of a struct. "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. - "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field. - "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. - "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. - }, + "type": # Object with schema name: Type # The type of the field. }, ], }, @@ -1336,11 +1348,7 @@

Method Details

"fields": [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query. { # Message representing a single field of a struct. "name": "A String", # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `"Word"` in the query `"SELECT 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query `"SELECT ColName FROM Table"`). Some columns might have an empty name (e.g., `"SELECT UPPER(ColName)"`). Note that a query result can contain multiple fields with the same name. - "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field. - "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements. - "code": "A String", # Required. The TypeCode for this type. - "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct's fields. - }, + "type": # Object with schema name: Type # The type of the field. }, ], }, diff --git a/docs/dyn/speech_v1p1beta1.projects.locations.customClasses.html b/docs/dyn/speech_v1p1beta1.projects.locations.customClasses.html index 558cd755688..3c2acb5ac2d 100644 --- a/docs/dyn/speech_v1p1beta1.projects.locations.customClasses.html +++ b/docs/dyn/speech_v1p1beta1.projects.locations.customClasses.html @@ -120,7 +120,7 @@

Method Details

], "name": "A String", # The resource name of the custom class. }, - "customClassId": "A String", # The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should be 4-63 characters, and valid characters are /a-z-/. + "customClassId": "A String", # Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should be 4-63 characters, and valid characters are /a-z-/. } x__xgafv: string, V1 error format. diff --git a/docs/dyn/speech_v1p1beta1.projects.locations.phraseSets.html b/docs/dyn/speech_v1p1beta1.projects.locations.phraseSets.html index 6621ae94040..bdc0d2dc094 100644 --- a/docs/dyn/speech_v1p1beta1.projects.locations.phraseSets.html +++ b/docs/dyn/speech_v1p1beta1.projects.locations.phraseSets.html @@ -121,7 +121,7 @@

Method Details

}, ], }, - "phraseSetId": "A String", # The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should be 4-63 characters, and valid characters are /a-z-/. + "phraseSetId": "A String", # Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should be 4-63 characters, and valid characters are /a-z-/. } x__xgafv: string, V1 error format. diff --git a/docs/dyn/speech_v1p1beta1.speech.html b/docs/dyn/speech_v1p1beta1.speech.html index 0b1fda9154a..ff43ade71de 100644 --- a/docs/dyn/speech_v1p1beta1.speech.html +++ b/docs/dyn/speech_v1p1beta1.speech.html @@ -174,6 +174,13 @@

Method Details

], }, ], + "transcriptNormalization": { # Transcription normalization configuration. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts. # Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts. + "entries": { # A single replacement configuration. # A list of replacement entries. We will perform replacement with one entry at a time. For example, the second entry in ["cat" => "dog", "mountain cat" => "mountain dog"] will never be applied because we will always process the first entry before it. At most 100 entries. + "caseSensitive": True or False, # Whether the search is case sensitive. + "replace": "A String", # What to replace with. Max length is 100 characters. + "search": "A String", # What to replace. Max length is 100 characters. + }, + }, "useEnhanced": True or False, # Set to true to use an enhanced model for speech recognition. If `use_enhanced` is set to true and the `model` field is not set, then an appropriate enhanced model is chosen if an enhanced model exists for the audio. If `use_enhanced` is true and an enhanced version of the specified model does not exist, then the speech is recognized using the standard version of the specified model. }, "outputConfig": { # Specifies an optional destination for the recognition results. # Optional. Specifies an optional destination for the recognition results. @@ -295,6 +302,13 @@

Method Details

], }, ], + "transcriptNormalization": { # Transcription normalization configuration. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts. # Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts. + "entries": { # A single replacement configuration. # A list of replacement entries. We will perform replacement with one entry at a time. For example, the second entry in ["cat" => "dog", "mountain cat" => "mountain dog"] will never be applied because we will always process the first entry before it. At most 100 entries. + "caseSensitive": True or False, # Whether the search is case sensitive. + "replace": "A String", # What to replace with. Max length is 100 characters. + "search": "A String", # What to replace. Max length is 100 characters. + }, + }, "useEnhanced": True or False, # Set to true to use an enhanced model for speech recognition. If `use_enhanced` is set to true and the `model` field is not set, then an appropriate enhanced model is chosen if an enhanced model exists for the audio. If `use_enhanced` is true and an enhanced version of the specified model does not exist, then the speech is recognized using the standard version of the specified model. }, } diff --git a/docs/dyn/sqladmin_v1.backupRuns.html b/docs/dyn/sqladmin_v1.backupRuns.html new file mode 100644 index 00000000000..5e77ed87fc9 --- /dev/null +++ b/docs/dyn/sqladmin_v1.backupRuns.html @@ -0,0 +1,419 @@ + + + +

Cloud SQL Admin API . backupRuns

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ delete(project, instance, id, x__xgafv=None)

+

Deletes the backup taken by a backup run.

+

+ get(project, instance, id, x__xgafv=None)

+

Retrieves a resource containing information about a backup run.

+

+ insert(project, instance, body=None, x__xgafv=None)

+

Creates a new backup run on demand.

+

+ list(project, instance, maxResults=None, pageToken=None, x__xgafv=None)

+

Lists all backup runs associated with the project or a given instance and configuration in the reverse chronological order of the backup initiation time.

+

+ list_next(previous_request, previous_response)

+

Retrieves the next page of results.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ delete(project, instance, id, x__xgafv=None) +
Deletes the backup taken by a backup run.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  id: string, The ID of the backup run to delete. To find a backup run ID, use the list method. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ get(project, instance, id, x__xgafv=None) +
Retrieves a resource containing information about a backup run.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  id: string, The ID of this backup run. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A BackupRun resource.
+  "backupKind": "A String", # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
+  "description": "A String", # The description of this run, only applicable to on-demand backups.
+  "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup.
+    "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+    "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+  },
+  "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup.
+    "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+    "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
+    "code": "A String", # Identifies the specific error that occurred.
+    "kind": "A String", # This is always **sql#operationError**.
+    "message": "A String", # Additional information about the error encountered.
+  },
+  "id": "A String", # The identifier for this backup run. Unique only for a specific Cloud SQL instance.
+  "instance": "A String", # Name of the database instance.
+  "kind": "A String", # This is always *sql#backupRun*.
+  "location": "A String", # Location of the backups.
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  "status": "A String", # The status of this run.
+  "type": "A String", # The type of this run; can be either "AUTOMATED" or "ON_DEMAND". This field defaults to "ON_DEMAND" and is ignored, when specified for insert requests.
+  "windowStartTime": "A String", # The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+}
+
+ +
+ insert(project, instance, body=None, x__xgafv=None) +
Creates a new backup run on demand.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A BackupRun resource.
+  "backupKind": "A String", # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
+  "description": "A String", # The description of this run, only applicable to on-demand backups.
+  "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup.
+    "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+    "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+  },
+  "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup.
+    "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+    "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
+    "code": "A String", # Identifies the specific error that occurred.
+    "kind": "A String", # This is always **sql#operationError**.
+    "message": "A String", # Additional information about the error encountered.
+  },
+  "id": "A String", # The identifier for this backup run. Unique only for a specific Cloud SQL instance.
+  "instance": "A String", # Name of the database instance.
+  "kind": "A String", # This is always *sql#backupRun*.
+  "location": "A String", # Location of the backups.
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  "status": "A String", # The status of this run.
+  "type": "A String", # The type of this run; can be either "AUTOMATED" or "ON_DEMAND". This field defaults to "ON_DEMAND" and is ignored, when specified for insert requests.
+  "windowStartTime": "A String", # The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ list(project, instance, maxResults=None, pageToken=None, x__xgafv=None) +
Lists all backup runs associated with the project or a given instance and configuration in the reverse chronological order of the backup initiation time.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID, or "-" for all instances. This does not include the project ID. (required)
+  maxResults: integer, Maximum number of backup runs per response.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Backup run list results.
+  "items": [ # A list of backup runs in reverse chronological order of the enqueued time.
+    { # A BackupRun resource.
+      "backupKind": "A String", # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
+      "description": "A String", # The description of this run, only applicable to on-demand backups.
+      "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup.
+        "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+        "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+      },
+      "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup.
+        "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+        "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+      },
+      "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+      "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+      "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+      "id": "A String", # The identifier for this backup run. Unique only for a specific Cloud SQL instance.
+      "instance": "A String", # Name of the database instance.
+      "kind": "A String", # This is always *sql#backupRun*.
+      "location": "A String", # Location of the backups.
+      "selfLink": "A String", # The URI of this resource.
+      "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+      "status": "A String", # The status of this run.
+      "type": "A String", # The type of this run; can be either "AUTOMATED" or "ON_DEMAND". This field defaults to "ON_DEMAND" and is ignored, when specified for insert requests.
+      "windowStartTime": "A String", # The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+    },
+  ],
+  "kind": "A String", # This is always *sql#backupRunsList*.
+  "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.connect.html b/docs/dyn/sqladmin_v1.connect.html new file mode 100644 index 00000000000..d6ab29e63a9 --- /dev/null +++ b/docs/dyn/sqladmin_v1.connect.html @@ -0,0 +1,172 @@ + + + +

Cloud SQL Admin API . connect

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ generateEphemeralCert(project, instance, body=None, x__xgafv=None)

+

Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.

+

+ get(project, instance, readTime=None, x__xgafv=None)

+

Retrieves connect settings about a Cloud SQL instance.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ generateEphemeralCert(project, instance, body=None, x__xgafv=None) +
Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Ephemeral certificate creation request.
+  "access_token": "A String", # Optional. Access token to include in the signed certificate.
+  "public_key": "A String", # PEM encoded public key to include in the signed certificate.
+  "readTime": "A String", # Optional. Optional snapshot read timestamp to trade freshness for performance.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Ephemeral certificate creation request.
+  "ephemeralCert": { # SslCerts Resource # Generated cert
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+}
+
+ +
+ get(project, instance, readTime=None, x__xgafv=None) +
Retrieves connect settings about a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  readTime: string, Optional. Optional snapshot read timestamp to trade freshness for performance.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Connect settings retrieval response.
+  "backendType": "A String", # **SECOND_GEN**: Cloud SQL database instance. **EXTERNAL**: A database server that is not managed by Google. This property is read-only; use the **tier** property in the **settings** object to determine the database type.
+  "databaseVersion": "A String", # The database engine type and version. The **databaseVersion** field cannot be changed after instance creation. MySQL instances: **MYSQL_8_0**, **MYSQL_5_7** (default), or **MYSQL_5_6**. PostgreSQL instances: **POSTGRES_9_6**, **POSTGRES_10**, **POSTGRES_11** or **POSTGRES_12** (default). SQL Server instances: **SQLSERVER_2017_STANDARD** (default), **SQLSERVER_2017_ENTERPRISE**, **SQLSERVER_2017_EXPRESS**, or **SQLSERVER_2017_WEB**.
+  "ipAddresses": [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      "ipAddress": "A String", # The IP address assigned.
+      "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  "kind": "A String", # This is always `sql#connectSettings`.
+  "serverCaCert": { # SslCerts Resource # SSL configuration.
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.databases.html b/docs/dyn/sqladmin_v1.databases.html new file mode 100644 index 00000000000..c87c4af910f --- /dev/null +++ b/docs/dyn/sqladmin_v1.databases.html @@ -0,0 +1,573 @@ + + + +

Cloud SQL Admin API . databases

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ delete(project, instance, database, x__xgafv=None)

+

Deletes a database from a Cloud SQL instance.

+

+ get(project, instance, database, x__xgafv=None)

+

Retrieves a resource containing information about a database inside a Cloud SQL instance.

+

+ insert(project, instance, body=None, x__xgafv=None)

+

Inserts a resource containing information about a database inside a Cloud SQL instance.

+

+ list(project, instance, x__xgafv=None)

+

Lists databases in the specified Cloud SQL instance.

+

+ patch(project, instance, database, body=None, x__xgafv=None)

+

Partially updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.

+

+ update(project, instance, database, body=None, x__xgafv=None)

+

Updates a resource containing information about a database inside a Cloud SQL instance.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ delete(project, instance, database, x__xgafv=None) +
Deletes a database from a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database to be deleted in the instance. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ get(project, instance, database, x__xgafv=None) +
Retrieves a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database in the instance. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a SQL database on the Cloud SQL instance.
+  "charset": "A String", # The Cloud SQL charset value.
+  "collation": "A String", # The Cloud SQL collation value.
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+  "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+  "kind": "A String", # This is always **sql#database**.
+  "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+  "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+  "selfLink": "A String", # The URI of this resource.
+  "sqlserverDatabaseDetails": { # Represents a Sql Server database on the Cloud SQL instance.
+    "compatibilityLevel": 42, # The version of SQL Server with which the database is to be made compatible
+    "recoveryModel": "A String", # The recovery model of a SQL Server database
+  },
+}
+
+ +
+ insert(project, instance, body=None, x__xgafv=None) +
Inserts a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Represents a SQL database on the Cloud SQL instance.
+  "charset": "A String", # The Cloud SQL charset value.
+  "collation": "A String", # The Cloud SQL collation value.
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+  "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+  "kind": "A String", # This is always **sql#database**.
+  "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+  "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+  "selfLink": "A String", # The URI of this resource.
+  "sqlserverDatabaseDetails": { # Represents a Sql Server database on the Cloud SQL instance.
+    "compatibilityLevel": 42, # The version of SQL Server with which the database is to be made compatible
+    "recoveryModel": "A String", # The recovery model of a SQL Server database
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ list(project, instance, x__xgafv=None) +
Lists databases in the specified Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Database list response.
+  "items": [ # List of database resources in the instance.
+    { # Represents a SQL database on the Cloud SQL instance.
+      "charset": "A String", # The Cloud SQL charset value.
+      "collation": "A String", # The Cloud SQL collation value.
+      "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+      "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+      "kind": "A String", # This is always **sql#database**.
+      "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+      "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+      "selfLink": "A String", # The URI of this resource.
+      "sqlserverDatabaseDetails": { # Represents a Sql Server database on the Cloud SQL instance.
+        "compatibilityLevel": 42, # The version of SQL Server with which the database is to be made compatible
+        "recoveryModel": "A String", # The recovery model of a SQL Server database
+      },
+    },
+  ],
+  "kind": "A String", # This is always *sql#databasesList*.
+}
+
+ +
+ patch(project, instance, database, body=None, x__xgafv=None) +
Partially updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database to be updated in the instance. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Represents a SQL database on the Cloud SQL instance.
+  "charset": "A String", # The Cloud SQL charset value.
+  "collation": "A String", # The Cloud SQL collation value.
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+  "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+  "kind": "A String", # This is always **sql#database**.
+  "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+  "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+  "selfLink": "A String", # The URI of this resource.
+  "sqlserverDatabaseDetails": { # Represents a Sql Server database on the Cloud SQL instance.
+    "compatibilityLevel": 42, # The version of SQL Server with which the database is to be made compatible
+    "recoveryModel": "A String", # The recovery model of a SQL Server database
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ update(project, instance, database, body=None, x__xgafv=None) +
Updates a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database to be updated in the instance. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Represents a SQL database on the Cloud SQL instance.
+  "charset": "A String", # The Cloud SQL charset value.
+  "collation": "A String", # The Cloud SQL collation value.
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+  "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+  "kind": "A String", # This is always **sql#database**.
+  "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+  "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+  "selfLink": "A String", # The URI of this resource.
+  "sqlserverDatabaseDetails": { # Represents a Sql Server database on the Cloud SQL instance.
+    "compatibilityLevel": 42, # The version of SQL Server with which the database is to be made compatible
+    "recoveryModel": "A String", # The recovery model of a SQL Server database
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.flags.html b/docs/dyn/sqladmin_v1.flags.html new file mode 100644 index 00000000000..3d050b18e0c --- /dev/null +++ b/docs/dyn/sqladmin_v1.flags.html @@ -0,0 +1,128 @@ + + + +

Cloud SQL Admin API . flags

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ list(databaseVersion=None, x__xgafv=None)

+

Lists all available database flags for Cloud SQL instances.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ list(databaseVersion=None, x__xgafv=None) +
Lists all available database flags for Cloud SQL instances.
+
+Args:
+  databaseVersion: string, Database type and version you want to retrieve flags for. By default, this method returns flags for all database types and versions.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Flags list response.
+  "items": [ # List of flags.
+    { # A flag resource.
+      "allowedIntValues": [ # Use this field if only certain integers are accepted. Can be combined with min_value and max_value to add additional values.
+        "A String",
+      ],
+      "allowedStringValues": [ # For **STRING** flags, a list of strings that the value can be set to.
+        "A String",
+      ],
+      "appliesTo": [ # The database version this flag applies to. Can be **MYSQL_8_0**, **MYSQL_5_6**, or **MYSQL_5_7**.
+        "A String",
+      ],
+      "inBeta": True or False, # Whether or not the flag is considered in beta.
+      "kind": "A String", # This is always **sql#flag**.
+      "maxValue": "A String", # For **INTEGER** flags, the maximum allowed value.
+      "minValue": "A String", # For **INTEGER** flags, the minimum allowed value.
+      "name": "A String", # This is the name of the flag. Flag names always use underscores, not hyphens, for example: **max_allowed_packet**
+      "requiresRestart": True or False, # Indicates whether changing this flag will trigger a database restart. Only applicable to Second Generation instances.
+      "type": "A String", # The type of the flag. Flags are typed to being **BOOLEAN**, **STRING**, **INTEGER** or **NONE**. **NONE** is used for flags which do not take a value, such as **skip_grant_tables**.
+    },
+  ],
+  "kind": "A String", # This is always **sql#flagsList**.
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.html b/docs/dyn/sqladmin_v1.html index 0330ae81fae..7d53cf37655 100644 --- a/docs/dyn/sqladmin_v1.html +++ b/docs/dyn/sqladmin_v1.html @@ -74,16 +74,56 @@

Cloud SQL Admin API

Instance Methods

+

+ backupRuns() +

+

Returns the backupRuns Resource.

+ +

+ connect() +

+

Returns the connect Resource.

+ +

+ databases() +

+

Returns the databases Resource.

+ +

+ flags() +

+

Returns the flags Resource.

+

instances()

Returns the instances Resource.

+

+ operations() +

+

Returns the operations Resource.

+

projects()

Returns the projects Resource.

+

+ sslCerts() +

+

Returns the sslCerts Resource.

+ +

+ tiers() +

+

Returns the tiers Resource.

+ +

+ users() +

+

Returns the users Resource.

+

close()

Close httplib2 connections.

diff --git a/docs/dyn/sqladmin_v1.instances.html b/docs/dyn/sqladmin_v1.instances.html index e76345df9ef..b99f24149e7 100644 --- a/docs/dyn/sqladmin_v1.instances.html +++ b/docs/dyn/sqladmin_v1.instances.html @@ -74,30 +74,83 @@

Cloud SQL Admin API . instances

Instance Methods

+

+ addServerCa(project, instance, x__xgafv=None)

+

Adds a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in.

+

+ clone(project, instance, body=None, x__xgafv=None)

+

Creates a Cloud SQL instance as a clone of the source instance. Using this operation might cause your instance to restart.

close()

Close httplib2 connections.

+

+ delete(project, instance, x__xgafv=None)

+

Deletes a Cloud SQL instance.

+

+ demoteMaster(project, instance, body=None, x__xgafv=None)

+

Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.

+

+ export(project, instance, body=None, x__xgafv=None)

+

Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL dump or CSV file.

+

+ failover(project, instance, body=None, x__xgafv=None)

+

Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the Overview of high availability page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.

+

+ get(project, instance, x__xgafv=None)

+

Retrieves a resource containing information about a Cloud SQL instance.

+

+ import_(project, instance, body=None, x__xgafv=None)

+

Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud Storage.

+

+ insert(project, body=None, x__xgafv=None)

+

Creates a new Cloud SQL instance.

list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None)

Lists instances under a given project.

+

+ listServerCas(project, instance, x__xgafv=None)

+

Lists all of the trusted Certificate Authorities (CAs) for the specified instance. There can be up to three CAs listed: the CA that was used to sign the certificate that is currently in use, a CA that has been added but not yet used to sign a certificate, and a CA used to sign a certificate that has previously rotated out.

list_next(previous_request, previous_response)

Retrieves the next page of results.

+

+ patch(project, instance, body=None, x__xgafv=None)

+

Updates settings of a Cloud SQL instance. This method supports patch semantics.

+

+ promoteReplica(project, instance, x__xgafv=None)

+

Promotes the read replica instance to be a stand-alone Cloud SQL instance. Using this operation might cause your instance to restart.

+

+ resetSslConfig(project, instance, x__xgafv=None)

+

Deletes all client certificates and generates a new server SSL certificate for the instance.

+

+ restart(project, instance, x__xgafv=None)

+

Restarts a Cloud SQL instance.

+

+ restoreBackup(project, instance, body=None, x__xgafv=None)

+

Restores a backup of a Cloud SQL instance. Using this operation might cause your instance to restart.

+

+ rotateServerCa(project, instance, body=None, x__xgafv=None)

+

Rotates the server certificate to one signed by the Certificate Authority (CA) version previously added with the addServerCA method.

+

+ startReplica(project, instance, x__xgafv=None)

+

Starts the replication in the read replica instance.

+

+ stopReplica(project, instance, x__xgafv=None)

+

Stops the replication in the read replica instance.

+

+ truncateLog(project, instance, body=None, x__xgafv=None)

+

Truncate MySQL general and slow query log tables MySQL only.

+

+ update(project, instance, body=None, x__xgafv=None)

+

Updates settings of a Cloud SQL instance. Using this operation might cause your instance to restart.

Method Details

- close() -
Close httplib2 connections.
-
- -
- list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None) -
Lists instances under a given project.
+    addServerCa(project, instance, x__xgafv=None)
+  
Adds a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in.
 
 Args:
-  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
-  filter: string, A filter expression that filters resources listed in the response. The expression is in the form of field:value. For example, 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per their JSON representation, such as 'settings.userLabels.auto_start:true'. Multiple filter queries are space-separated. For example. 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly.
-  maxResults: integer, The maximum number of results to return per response.
-  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -106,225 +159,2684 @@ 

Method Details

Returns: An object of the form: - { # Database instances list response. - "items": [ # List of database instance resources. - { # A Cloud SQL instance resource. - "backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. - "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. - "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. - "kind": "A String", # This is always **sql#diskEncryptionConfiguration**. - "kmsKeyName": "A String", # Resource name of KMS key for disk encryption - }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. - "kind": "A String", # This is always **sql#diskEncryptionStatus**. - "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource + { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource. + "backupContext": { # Backup context. # The context for backup operation, if applicable. + "backupId": "A String", # The identifier of the backup. + "kind": "A String", # This is always **sql#backupContext**. + }, + "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated. + "errors": [ # The list of errors encountered while processing this operation. + { # Database instance operation error. + "code": "A String", # Identifies the specific error that occurred. + "kind": "A String", # This is always **sql#operationError**. + "message": "A String", # Additional information about the error encountered. }, - "encryptedRootPassword": "A String", # For internal usage only. The encrypted password. - "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. - "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "failoverInstance": { # Reference to another Cloud SQL instance. # A reference to the failover replica. If specified at instance creation, a failover replica is created for the instance. Currently, the failover replica can only be created in the same region as the primary instance. - "name": "A String", # The name of the Cloud SQL instance being referenced. - "region": "A String", # The region of the Cloud SQL instance being referenced. - }, - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. + ], + "kind": "A String", # This is always **sql#operationErrors**. + }, + "exportContext": { # Database instance export context. # The context for export operation, if applicable. + "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only. + "selectQuery": "A String", # The select query used to extract the data. + }, + "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**. + "A String", + ], + "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance. + "kind": "A String", # This is always **sql#exportContext**. + "offload": True or False, # Option for export offload. + "sqlExportOptions": { # Options for exporting data as SQL statements. + "mysqlExportOptions": { # Options for exporting from MySQL. + "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF. }, - "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. - "installedVersion": "A String", # installed_version stores the current fully resolved database version including minor version such as MySQL_5.6.50 - "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. - "instanceUid": "A String", # Uid of the Cloud SQL instance. Used by Pantheon to check instance is created - "ipAddresses": [ # The assigned IP addresses for the instance. - { # Database instance IP Mapping. - "ipAddress": "A String", # The IP address assigned. - "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired. - "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported. - }, + "schemaOnly": True or False, # Export only schemas. + "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table. + "A String", ], - "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances. - "kind": "A String", # This is always *sql#instance*. - "masterInstance": { # Reference to another Cloud SQL instance. # The reference to the instance which will act as primary in the replication setup. - "name": "A String", # The name of the Cloud SQL instance being referenced. - "region": "A String", # The region of the Cloud SQL instance being referenced. - }, - "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup. - "maxDiskSize": "A String", # The maximum disk size of the instance in bytes. - "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID. - "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances. - "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate. - "clientCertificate": "A String", # PEM representation of the replica's x509 certificate. - "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. - "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica. - "hostPort": "A String", # The host and port of the on-premises instance in host:port format - "kind": "A String", # This is always *sql#onPremisesConfiguration*. - "password": "A String", # The password for connecting to on-premises instance. - "username": "A String", # The username for connecting to on-premises instance. + }, + "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed. + }, + "importContext": { # Database instance import context. # The context for import operation, if applicable. + "bakImportOptions": { # Import parameters specific to SQL Server .BAK files + "encryptionOptions": { + "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file. + "pvkPassword": "A String", # Password that encrypts the private key + "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file. }, - "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job - "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend - "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job + }, + "csvImportOptions": { # Options for importing data as CSV. + "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data. + "A String", + ], + "table": "A String", # The table to which CSV data is imported. + }, + "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified. + "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. + "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only. + "kind": "A String", # This is always **sql#importContext**. + "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file. + }, + "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "kind": "A String", # This is always **sql#operation**. + "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation. + "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE** + "selfLink": "A String", # The URI of this resource. + "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED** + "targetId": "A String", # Name of the database instance related to this operation. + "targetLink": "A String", + "targetProject": "A String", # The project ID of the target instance related to this operation. + "user": "A String", # The email address of the user who initiated this operation. +}
+
+ +
+ clone(project, instance, body=None, x__xgafv=None) +
Creates a Cloud SQL instance as a clone of the source instance. Using this operation might cause your instance to restart.
+
+Args:
+  project: string, Project ID of the source as well as the clone Cloud SQL instance. (required)
+  instance: string, The ID of the Cloud SQL instance to be cloned (source). This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Database instance clone request.
+  "cloneContext": { # Database instance clone context. # Contains details about the clone operation.
+    "binLogCoordinates": { # Binary log coordinates. # Binary log coordinates, if specified, identify the position up to which the source instance is cloned. If not specified, the source instance is cloned up to the most recent binary log coordinates.
+      "binLogFileName": "A String", # Name of the binary log file for a Cloud SQL instance.
+      "binLogPosition": "A String", # Position (offset) within the binary log file.
+      "kind": "A String", # This is always *sql#binLogCoordinates*.
+    },
+    "destinationInstanceName": "A String", # Name of the Cloud SQL instance to be created as a clone.
+    "kind": "A String", # This is always *sql#cloneContext*.
+    "pitrTimestampMs": "A String", # Reserved for future use.
+    "pointInTime": "A String", # Timestamp, if specified, identifies the time to which the source instance is cloned.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
       },
-      "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
-      "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
-      "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
-        "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
-        "kind": "A String", # This is always *sql#replicaConfiguration*.
-        "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
-          "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
-          "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
-          "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
-          "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
-          "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
-          "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**.
-          "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
-          "password": "A String", # The password for the replication connection.
-          "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
-          "username": "A String", # The username for the replication connection.
-          "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.
-        },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
       },
-      "replicaInstances": [ # The replicas of the instance.
-        { # Reference to another Cloud SQL instance.
-          "name": "A String", # The name of the Cloud SQL instance being referenced.
-          "region": "A String", # The region of the Cloud SQL instance being referenced.
-        },
-      ],
-      "replicaNames": [ # The replicas of the instance.
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
         "A String",
       ],
-      "rootPassword": "A String", # Initial root password. Use only on creation.
-      "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
-      "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
-        "canDefer": True or False,
-        "canReschedule": True or False, # If the scheduled maintenance can be rescheduled.
-        "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline.
-        "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance.
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
       },
-      "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
-      "selfLink": "A String", # The URI of this resource.
-      "serverCaCert": { # SslCerts Resource # SSL configuration.
-        "cert": "A String", # PEM representation.
-        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
-        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
-        "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
-        "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
-        "instance": "A String", # Name of the database instance.
-        "kind": "A String", # This is always sql#sslCert.
-        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ close() +
Close httplib2 connections.
+
+ +
+ delete(project, instance, x__xgafv=None) +
Deletes a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be deleted. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
       },
-      "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only.
-      "settings": { # Database instance settings. # The user settings.
-        "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
-        "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
-          "domain": "A String", # The name of the domain (e.g., mydomain.com).
-          "kind": "A String", # This is always sql#activeDirectoryConfig.
-        },
-        "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](/sql/docs/postgres/high-availability).
-        "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
-          "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
-            "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups.
-            "retentionUnit": "A String", # The unit that 'retained_backups' represents.
-          },
-          "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
-          "enabled": True or False, # Whether this configuration is enabled.
-          "kind": "A String", # This is always **sql#backupConfiguration**.
-          "location": "A String", # Location of the backup
-          "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled.
-          "replicationLogArchivingEnabled": True or False, # Reserved for future use.
-          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
-          "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
-        },
-        "collation": "A String", # The name of server Instance collation.
-        "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
-        "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB.
-        "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
-        "databaseFlags": [ # The database flags passed to the instance at startup.
-          { # Database flags for Cloud SQL instances.
-            "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](/sql/docs/mysql/flags) in the Cloud SQL documentation.
-            "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.
-          },
-        ],
-        "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
-        "denyMaintenancePeriods": [ # Deny maintenance periods
-          { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
-            "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
-            "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
-            "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
-          },
-        ],
-        "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
-          "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled.
-          "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database.
-          "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
-          "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled.
-          "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled.
-        },
-        "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
-          "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**).
-            { # An entry for an Access Control list.
-              "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
-              "kind": "A String", # This is always **sql#aclEntry**.
-              "name": "A String", # Optional. A label to identify this entry.
-              "value": "A String", # The allowlisted value for the access control list.
-            },
-          ],
-          "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not.
-          "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
-          "requireSsl": True or False, # Whether SSL connections over IP are enforced or not.
-        },
-        "kind": "A String", # This is always **sql#settings**.
-        "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
-          "kind": "A String", # This is always **sql#locationPreference**.
-          "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
-          "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
-        },
-        "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
-          "day": 42, # day of week (1-7), starting on Monday.
-          "hour": 42, # hour of day - 0 to 23.
-          "kind": "A String", # This is always **sql#maintenanceWindow**.
-          "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instance-settings#maintenance-timing-2ndgen).
-        },
-        "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
-        "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
-        "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
-        "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true.
-        "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
-        "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
-        "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
-          "a_key": "A String",
-        },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
       },
-      "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
-      "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
         "A String",
       ],
     },
-  ],
-  "kind": "A String", # This is always *sql#instancesList*.
-  "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
-  "warnings": [ # List of warnings that occurred while handling the request.
-    { # An Admin API warning message.
-      "code": "A String", # Code to uniquely identify the warning type.
-      "message": "A String", # The warning message.
-      "region": "A String", # The region name for REGION_UNREACHABLE warning.
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
     },
-  ],
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
 }
- list_next(previous_request, previous_response) -
Retrieves the next page of results.
+    demoteMaster(project, instance, body=None, x__xgafv=None)
+  
Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.
 
 Args:
-  previous_request: The request for the previous page. (required)
+  project: string, ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance name. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Database demote primary instance request.
+  "demoteMasterContext": { # Database instance demote primary instance context. # Contains details about the demoteMaster operation.
+    "kind": "A String", # This is always *sql#demoteMasterContext*.
+    "masterInstanceName": "A String", # The name of the instance which will act as on-premises primary instance in the replication setup.
+    "replicaConfiguration": { # Read-replica configuration for connecting to the on-premises primary instance. # Configuration specific to read-replicas replicating from the on-premises primary instance.
+      "kind": "A String", # This is always **sql#demoteMasterConfiguration**.
+      "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named **master.info** in the data directory.
+        "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+        "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+        "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. The format of the replica's private key can be either PKCS #1 or PKCS #8.
+        "kind": "A String", # This is always **sql#demoteMasterMysqlReplicaConfiguration**.
+        "password": "A String", # The password for the replication connection.
+        "username": "A String", # The username for the replication connection.
+      },
+    },
+    "verifyGtidConsistency": True or False, # Verify GTID consistency for demote operation. Default value: *True*. Setting this flag to false enables you to bypass GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ export(project, instance, body=None, x__xgafv=None) +
Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL dump or CSV file.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be exported. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Database instance export request.
+  "exportContext": { # Database instance export context. # Contains details about the export operation.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ failover(project, instance, body=None, x__xgafv=None) +
Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the Overview of high availability page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Instance failover request.
+  "failoverContext": { # Database instance failover context. # Failover Context.
+    "kind": "A String", # This is always *sql#failoverContext*.
+    "settingsVersion": "A String", # The current settings version of this instance. Request will be rejected if this version doesn't match the current settings version.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ get(project, instance, x__xgafv=None) +
Retrieves a resource containing information about a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud SQL instance resource.
+  "backendType": "A String", #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+  "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings.
+  "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details.
+  "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+    "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+  },
+  "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+    "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+  "failoverReplica": { # The name and status of the failover replica.
+    "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+    "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.
+  },
+  "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+  "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+  "ipAddresses": [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      "ipAddress": "A String", # The IP address assigned.
+      "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+  "kind": "A String", # This is always *sql#instance*.
+  "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup.
+  "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+  "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
+    "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+    "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+    "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+    "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica.
+    "hostPort": "A String", # The host and port of the on-premises instance in host:port format
+    "kind": "A String", # This is always *sql#onPremisesConfiguration*.
+    "password": "A String", # The password for connecting to on-premises instance.
+    "username": "A String", # The username for connecting to on-premises instance.
+  },
+  "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
+  "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+  "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+  "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+    "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+    "kind": "A String", # This is always *sql#replicaConfiguration*.
+    "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+      "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+      "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+      "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+      "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
+      "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+      "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**.
+      "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
+      "password": "A String", # The password for the replication connection.
+      "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
+      "username": "A String", # The username for the replication connection.
+      "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.
+    },
+  },
+  "replicaNames": [ # The replicas of the instance.
+    "A String",
+  ],
+  "rootPassword": "A String", # Initial root password. Use only on creation.
+  "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+  "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+    "canDefer": True or False,
+    "canReschedule": True or False, # If the scheduled maintenance can be rescheduled.
+    "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline.
+    "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance.
+  },
+  "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+  "selfLink": "A String", # The URI of this resource.
+  "serverCaCert": { # SslCerts Resource # SSL configuration.
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+  "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only.
+  "settings": { # Database instance settings. # The user settings.
+    "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+    "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+      "domain": "A String", # The name of the domain (e.g., mydomain.com).
+      "kind": "A String", # This is always sql#activeDirectoryConfig.
+    },
+    "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
+      "A String",
+    ],
+    "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
+    "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+      "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+        "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups.
+        "retentionUnit": "A String", # The unit that 'retained_backups' represents.
+      },
+      "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+      "enabled": True or False, # Whether this configuration is enabled.
+      "kind": "A String", # This is always **sql#backupConfiguration**.
+      "location": "A String", # Location of the backup
+      "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled.
+      "replicationLogArchivingEnabled": True or False, # Reserved for future use.
+      "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+      "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+    },
+    "collation": "A String", # The name of server Instance collation.
+    "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+    "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB.
+    "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+    "databaseFlags": [ # The database flags passed to the instance at startup.
+      { # Database flags for Cloud SQL instances.
+        "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
+        "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.
+      },
+    ],
+    "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+    "denyMaintenancePeriods": [ # Deny maintenance periods
+      { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+        "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+      },
+    ],
+    "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+      "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled.
+      "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
+      "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+      "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled.
+      "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled.
+    },
+    "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+      "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**).
+        { # An entry for an Access Control list.
+          "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+          "kind": "A String", # This is always **sql#aclEntry**.
+          "name": "A String", # Optional. A label to identify this entry.
+          "value": "A String", # The allowlisted value for the access control list.
+        },
+      ],
+      "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not.
+      "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+      "requireSsl": True or False, # Whether SSL connections over IP are enforced or not.
+    },
+    "kind": "A String", # This is always **sql#settings**.
+    "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+      "followGaeApplication": "A String", # The App Engine application to follow, it must be in the same region as the Cloud SQL instance.
+      "kind": "A String", # This is always **sql#locationPreference**.
+      "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+      "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+    },
+    "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+      "day": 42, # day of week (1-7), starting on Monday.
+      "hour": 42, # hour of day - 0 to 23.
+      "kind": "A String", # This is always **sql#maintenanceWindow**.
+      "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).
+    },
+    "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+    "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+    "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+    "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true.
+    "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+    "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+    "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+      "a_key": "A String",
+    },
+  },
+  "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+  "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
+    "A String",
+  ],
+}
+
+ +
+ import_(project, instance, body=None, x__xgafv=None) +
Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud Storage.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Database instance import request.
+  "importContext": { # Database instance import context. # Contains details about the import operation.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ insert(project, body=None, x__xgafv=None) +
Creates a new Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project to which the newly created Cloud SQL instances should belong. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud SQL instance resource.
+  "backendType": "A String", #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+  "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings.
+  "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details.
+  "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+    "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+  },
+  "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+    "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+  "failoverReplica": { # The name and status of the failover replica.
+    "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+    "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.
+  },
+  "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+  "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+  "ipAddresses": [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      "ipAddress": "A String", # The IP address assigned.
+      "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+  "kind": "A String", # This is always *sql#instance*.
+  "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup.
+  "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+  "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
+    "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+    "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+    "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+    "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica.
+    "hostPort": "A String", # The host and port of the on-premises instance in host:port format
+    "kind": "A String", # This is always *sql#onPremisesConfiguration*.
+    "password": "A String", # The password for connecting to on-premises instance.
+    "username": "A String", # The username for connecting to on-premises instance.
+  },
+  "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
+  "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+  "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+  "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+    "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+    "kind": "A String", # This is always *sql#replicaConfiguration*.
+    "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+      "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+      "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+      "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+      "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
+      "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+      "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**.
+      "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
+      "password": "A String", # The password for the replication connection.
+      "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
+      "username": "A String", # The username for the replication connection.
+      "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.
+    },
+  },
+  "replicaNames": [ # The replicas of the instance.
+    "A String",
+  ],
+  "rootPassword": "A String", # Initial root password. Use only on creation.
+  "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+  "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+    "canDefer": True or False,
+    "canReschedule": True or False, # If the scheduled maintenance can be rescheduled.
+    "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline.
+    "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance.
+  },
+  "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+  "selfLink": "A String", # The URI of this resource.
+  "serverCaCert": { # SslCerts Resource # SSL configuration.
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+  "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only.
+  "settings": { # Database instance settings. # The user settings.
+    "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+    "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+      "domain": "A String", # The name of the domain (e.g., mydomain.com).
+      "kind": "A String", # This is always sql#activeDirectoryConfig.
+    },
+    "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
+      "A String",
+    ],
+    "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
+    "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+      "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+        "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups.
+        "retentionUnit": "A String", # The unit that 'retained_backups' represents.
+      },
+      "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+      "enabled": True or False, # Whether this configuration is enabled.
+      "kind": "A String", # This is always **sql#backupConfiguration**.
+      "location": "A String", # Location of the backup
+      "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled.
+      "replicationLogArchivingEnabled": True or False, # Reserved for future use.
+      "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+      "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+    },
+    "collation": "A String", # The name of server Instance collation.
+    "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+    "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB.
+    "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+    "databaseFlags": [ # The database flags passed to the instance at startup.
+      { # Database flags for Cloud SQL instances.
+        "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
+        "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.
+      },
+    ],
+    "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+    "denyMaintenancePeriods": [ # Deny maintenance periods
+      { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+        "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+      },
+    ],
+    "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+      "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled.
+      "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
+      "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+      "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled.
+      "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled.
+    },
+    "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+      "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**).
+        { # An entry for an Access Control list.
+          "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+          "kind": "A String", # This is always **sql#aclEntry**.
+          "name": "A String", # Optional. A label to identify this entry.
+          "value": "A String", # The allowlisted value for the access control list.
+        },
+      ],
+      "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not.
+      "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+      "requireSsl": True or False, # Whether SSL connections over IP are enforced or not.
+    },
+    "kind": "A String", # This is always **sql#settings**.
+    "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+      "followGaeApplication": "A String", # The App Engine application to follow, it must be in the same region as the Cloud SQL instance.
+      "kind": "A String", # This is always **sql#locationPreference**.
+      "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+      "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+    },
+    "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+      "day": 42, # day of week (1-7), starting on Monday.
+      "hour": 42, # hour of day - 0 to 23.
+      "kind": "A String", # This is always **sql#maintenanceWindow**.
+      "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).
+    },
+    "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+    "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+    "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+    "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true.
+    "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+    "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+    "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+      "a_key": "A String",
+    },
+  },
+  "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+  "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
+    "A String",
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None) +
Lists instances under a given project.
+
+Args:
+  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
+  filter: string, A filter expression that filters resources listed in the response. The expression is in the form of field:value. For example, 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per their JSON representation, such as 'settings.userLabels.auto_start:true'. Multiple filter queries are space-separated. For example. 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly.
+  maxResults: integer, The maximum number of results to return per response.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Database instances list response.
+  "items": [ # List of database instance resources.
+    { # A Cloud SQL instance resource.
+      "backendType": "A String", #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+      "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings.
+      "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details.
+      "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+      "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
+        "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+        "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+      },
+      "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
+        "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+        "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+      },
+      "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+      "failoverReplica": { # The name and status of the failover replica.
+        "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+        "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.
+      },
+      "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+      "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+      "ipAddresses": [ # The assigned IP addresses for the instance.
+        { # Database instance IP Mapping.
+          "ipAddress": "A String", # The IP address assigned.
+          "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+          "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+        },
+      ],
+      "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+      "kind": "A String", # This is always *sql#instance*.
+      "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup.
+      "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+      "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+      "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
+        "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+        "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+        "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+        "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica.
+        "hostPort": "A String", # The host and port of the on-premises instance in host:port format
+        "kind": "A String", # This is always *sql#onPremisesConfiguration*.
+        "password": "A String", # The password for connecting to on-premises instance.
+        "username": "A String", # The username for connecting to on-premises instance.
+      },
+      "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+        "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+        "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+      },
+      "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+      "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+      "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+        "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+        "kind": "A String", # This is always *sql#replicaConfiguration*.
+        "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+          "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+          "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+          "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+          "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
+          "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+          "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**.
+          "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
+          "password": "A String", # The password for the replication connection.
+          "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
+          "username": "A String", # The username for the replication connection.
+          "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.
+        },
+      },
+      "replicaNames": [ # The replicas of the instance.
+        "A String",
+      ],
+      "rootPassword": "A String", # Initial root password. Use only on creation.
+      "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+      "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+        "canDefer": True or False,
+        "canReschedule": True or False, # If the scheduled maintenance can be rescheduled.
+        "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline.
+        "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance.
+      },
+      "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+      "selfLink": "A String", # The URI of this resource.
+      "serverCaCert": { # SslCerts Resource # SSL configuration.
+        "cert": "A String", # PEM representation.
+        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+        "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+        "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+        "instance": "A String", # Name of the database instance.
+        "kind": "A String", # This is always sql#sslCert.
+        "selfLink": "A String", # The URI of this resource.
+        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+      },
+      "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only.
+      "settings": { # Database instance settings. # The user settings.
+        "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+        "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+          "domain": "A String", # The name of the domain (e.g., mydomain.com).
+          "kind": "A String", # This is always sql#activeDirectoryConfig.
+        },
+        "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
+          "A String",
+        ],
+        "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
+        "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+          "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+            "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups.
+            "retentionUnit": "A String", # The unit that 'retained_backups' represents.
+          },
+          "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+          "enabled": True or False, # Whether this configuration is enabled.
+          "kind": "A String", # This is always **sql#backupConfiguration**.
+          "location": "A String", # Location of the backup
+          "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled.
+          "replicationLogArchivingEnabled": True or False, # Reserved for future use.
+          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+          "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+        },
+        "collation": "A String", # The name of server Instance collation.
+        "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+        "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB.
+        "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+        "databaseFlags": [ # The database flags passed to the instance at startup.
+          { # Database flags for Cloud SQL instances.
+            "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
+            "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.
+          },
+        ],
+        "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+        "denyMaintenancePeriods": [ # Deny maintenance periods
+          { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+            "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+            "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+            "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+          },
+        ],
+        "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+          "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled.
+          "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
+          "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+          "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled.
+          "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled.
+        },
+        "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+          "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**).
+            { # An entry for an Access Control list.
+              "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+              "kind": "A String", # This is always **sql#aclEntry**.
+              "name": "A String", # Optional. A label to identify this entry.
+              "value": "A String", # The allowlisted value for the access control list.
+            },
+          ],
+          "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not.
+          "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+          "requireSsl": True or False, # Whether SSL connections over IP are enforced or not.
+        },
+        "kind": "A String", # This is always **sql#settings**.
+        "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+          "followGaeApplication": "A String", # The App Engine application to follow, it must be in the same region as the Cloud SQL instance.
+          "kind": "A String", # This is always **sql#locationPreference**.
+          "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+          "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+        },
+        "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+          "day": 42, # day of week (1-7), starting on Monday.
+          "hour": 42, # hour of day - 0 to 23.
+          "kind": "A String", # This is always **sql#maintenanceWindow**.
+          "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).
+        },
+        "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+        "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+        "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+        "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true.
+        "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+        "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+        "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+          "a_key": "A String",
+        },
+      },
+      "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+      "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
+        "A String",
+      ],
+    },
+  ],
+  "kind": "A String", # This is always *sql#instancesList*.
+  "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+  "warnings": [ # List of warnings that occurred while handling the request.
+    { # An Admin API warning message.
+      "code": "A String", # Code to uniquely identify the warning type.
+      "message": "A String", # The warning message.
+      "region": "A String", # The region name for REGION_UNREACHABLE warning.
+    },
+  ],
+}
+
+ +
+ listServerCas(project, instance, x__xgafv=None) +
Lists all of the trusted Certificate Authorities (CAs) for the specified instance. There can be up to three CAs listed: the CA that was used to sign the certificate that is currently in use, a CA that has been added but not yet used to sign a certificate, and a CA used to sign a certificate that has previously rotated out.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Instances ListServerCas response.
+  "activeVersion": "A String",
+  "certs": [ # List of server CA certificates for the instance.
+    { # SslCerts Resource
+      "cert": "A String", # PEM representation.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+      "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+      "instance": "A String", # Name of the database instance.
+      "kind": "A String", # This is always sql#sslCert.
+      "selfLink": "A String", # The URI of this resource.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+    },
+  ],
+  "kind": "A String", # This is always *sql#instancesListServerCas*.
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
   previous_response: The response from the request for the previous page. (required)
 
 Returns:
-  A request object that you can call 'execute()' on to request the next
-  page. Returns None if there are no more items in the collection.
-    
+ A request object that you can call 'execute()' on to request the next + page. Returns None if there are no more items in the collection. +
+
+ +
+ patch(project, instance, body=None, x__xgafv=None) +
Updates settings of a Cloud SQL instance. This method supports patch semantics.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud SQL instance resource.
+  "backendType": "A String", #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+  "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings.
+  "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details.
+  "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+    "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+  },
+  "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+    "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+  "failoverReplica": { # The name and status of the failover replica.
+    "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+    "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.
+  },
+  "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+  "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+  "ipAddresses": [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      "ipAddress": "A String", # The IP address assigned.
+      "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+  "kind": "A String", # This is always *sql#instance*.
+  "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup.
+  "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+  "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
+    "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+    "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+    "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+    "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica.
+    "hostPort": "A String", # The host and port of the on-premises instance in host:port format
+    "kind": "A String", # This is always *sql#onPremisesConfiguration*.
+    "password": "A String", # The password for connecting to on-premises instance.
+    "username": "A String", # The username for connecting to on-premises instance.
+  },
+  "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
+  "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+  "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+  "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+    "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+    "kind": "A String", # This is always *sql#replicaConfiguration*.
+    "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+      "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+      "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+      "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+      "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
+      "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+      "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**.
+      "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
+      "password": "A String", # The password for the replication connection.
+      "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
+      "username": "A String", # The username for the replication connection.
+      "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.
+    },
+  },
+  "replicaNames": [ # The replicas of the instance.
+    "A String",
+  ],
+  "rootPassword": "A String", # Initial root password. Use only on creation.
+  "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+  "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+    "canDefer": True or False,
+    "canReschedule": True or False, # If the scheduled maintenance can be rescheduled.
+    "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline.
+    "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance.
+  },
+  "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+  "selfLink": "A String", # The URI of this resource.
+  "serverCaCert": { # SslCerts Resource # SSL configuration.
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+  "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only.
+  "settings": { # Database instance settings. # The user settings.
+    "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+    "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+      "domain": "A String", # The name of the domain (e.g., mydomain.com).
+      "kind": "A String", # This is always sql#activeDirectoryConfig.
+    },
+    "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
+      "A String",
+    ],
+    "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
+    "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+      "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+        "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups.
+        "retentionUnit": "A String", # The unit that 'retained_backups' represents.
+      },
+      "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+      "enabled": True or False, # Whether this configuration is enabled.
+      "kind": "A String", # This is always **sql#backupConfiguration**.
+      "location": "A String", # Location of the backup
+      "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled.
+      "replicationLogArchivingEnabled": True or False, # Reserved for future use.
+      "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+      "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+    },
+    "collation": "A String", # The name of server Instance collation.
+    "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+    "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB.
+    "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+    "databaseFlags": [ # The database flags passed to the instance at startup.
+      { # Database flags for Cloud SQL instances.
+        "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
+        "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.
+      },
+    ],
+    "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+    "denyMaintenancePeriods": [ # Deny maintenance periods
+      { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+        "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+      },
+    ],
+    "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+      "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled.
+      "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
+      "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+      "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled.
+      "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled.
+    },
+    "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+      "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**).
+        { # An entry for an Access Control list.
+          "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+          "kind": "A String", # This is always **sql#aclEntry**.
+          "name": "A String", # Optional. A label to identify this entry.
+          "value": "A String", # The allowlisted value for the access control list.
+        },
+      ],
+      "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not.
+      "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+      "requireSsl": True or False, # Whether SSL connections over IP are enforced or not.
+    },
+    "kind": "A String", # This is always **sql#settings**.
+    "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+      "followGaeApplication": "A String", # The App Engine application to follow, it must be in the same region as the Cloud SQL instance.
+      "kind": "A String", # This is always **sql#locationPreference**.
+      "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+      "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+    },
+    "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+      "day": 42, # day of week (1-7), starting on Monday.
+      "hour": 42, # hour of day - 0 to 23.
+      "kind": "A String", # This is always **sql#maintenanceWindow**.
+      "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).
+    },
+    "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+    "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+    "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+    "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true.
+    "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+    "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+    "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+      "a_key": "A String",
+    },
+  },
+  "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+  "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
+    "A String",
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ promoteReplica(project, instance, x__xgafv=None) +
Promotes the read replica instance to be a stand-alone Cloud SQL instance. Using this operation might cause your instance to restart.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL read replica instance name. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ resetSslConfig(project, instance, x__xgafv=None) +
Deletes all client certificates and generates a new server SSL certificate for the instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ restart(project, instance, x__xgafv=None) +
Restarts a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be restarted. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ restoreBackup(project, instance, body=None, x__xgafv=None) +
Restores a backup of a Cloud SQL instance. Using this operation might cause your instance to restart.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Database instance restore backup request.
+  "restoreBackupContext": { # Database instance restore from backup context. Backup context contains source instance id and project id. # Parameters required to perform the restore backup operation.
+    "backupRunId": "A String", # The ID of the backup run to restore from.
+    "instanceId": "A String", # The ID of the instance that the backup was taken from.
+    "kind": "A String", # This is always *sql#restoreBackupContext*.
+    "project": "A String", # The full project ID of the source instance.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ rotateServerCa(project, instance, body=None, x__xgafv=None) +
Rotates the server certificate to one signed by the Certificate Authority (CA) version previously added with the addServerCA method.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Rotate server CA request.
+  "rotateServerCaContext": { # Instance rotate server CA context. # Contains details about the rotate server CA operation.
+    "kind": "A String", # This is always *sql#rotateServerCaContext*.
+    "nextVersion": "A String", # The fingerprint of the next version to be rotated to. If left unspecified, will be rotated to the most recently added server CA version.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ startReplica(project, instance, x__xgafv=None) +
Starts the replication in the read replica instance.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL read replica instance name. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ stopReplica(project, instance, x__xgafv=None) +
Stops the replication in the read replica instance.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL read replica instance name. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ truncateLog(project, instance, body=None, x__xgafv=None) +
Truncate MySQL general and slow query log tables MySQL only.
+
+Args:
+  project: string, Project ID of the Cloud SQL project. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Instance truncate log request.
+  "truncateLogContext": { # Database Instance truncate log context. # Contains details about the truncate log operation.
+    "kind": "A String", # This is always *sql#truncateLogContext*.
+    "logType": "A String", # The type of log to truncate. Valid values are *MYSQL_GENERAL_TABLE* and *MYSQL_SLOW_TABLE*.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ update(project, instance, body=None, x__xgafv=None) +
Updates settings of a Cloud SQL instance. Using this operation might cause your instance to restart.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud SQL instance resource.
+  "backendType": "A String", #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+  "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings.
+  "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details.
+  "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionConfiguration**.
+    "kmsKeyName": "A String", # Resource name of KMS key for disk encryption
+  },
+  "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance.
+    "kind": "A String", # This is always **sql#diskEncryptionStatus**.
+    "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+  "failoverReplica": { # The name and status of the failover replica.
+    "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+    "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.
+  },
+  "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+  "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+  "ipAddresses": [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      "ipAddress": "A String", # The IP address assigned.
+      "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+  "kind": "A String", # This is always *sql#instance*.
+  "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup.
+  "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+  "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances.
+    "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+    "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+    "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+    "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica.
+    "hostPort": "A String", # The host and port of the on-premises instance in host:port format
+    "kind": "A String", # This is always *sql#onPremisesConfiguration*.
+    "password": "A String", # The password for connecting to on-premises instance.
+    "username": "A String", # The username for connecting to on-premises instance.
+  },
+  "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
+  "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+  "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+  "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+    "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+    "kind": "A String", # This is always *sql#replicaConfiguration*.
+    "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+      "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate.
+      "clientCertificate": "A String", # PEM representation of the replica's x509 certificate.
+      "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.
+      "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds.
+      "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+      "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**.
+      "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats.
+      "password": "A String", # The password for the replication connection.
+      "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption.
+      "username": "A String", # The username for the replication connection.
+      "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.
+    },
+  },
+  "replicaNames": [ # The replicas of the instance.
+    "A String",
+  ],
+  "rootPassword": "A String", # Initial root password. Use only on creation.
+  "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+  "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+    "canDefer": True or False,
+    "canReschedule": True or False, # If the scheduled maintenance can be rescheduled.
+    "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline.
+    "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance.
+  },
+  "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+  "selfLink": "A String", # The URI of this resource.
+  "serverCaCert": { # SslCerts Resource # SSL configuration.
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+  "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only.
+  "settings": { # Database instance settings. # The user settings.
+    "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+    "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+      "domain": "A String", # The name of the domain (e.g., mydomain.com).
+      "kind": "A String", # This is always sql#activeDirectoryConfig.
+    },
+    "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.
+      "A String",
+    ],
+    "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).
+    "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+      "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+        "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups.
+        "retentionUnit": "A String", # The unit that 'retained_backups' represents.
+      },
+      "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+      "enabled": True or False, # Whether this configuration is enabled.
+      "kind": "A String", # This is always **sql#backupConfiguration**.
+      "location": "A String", # Location of the backup
+      "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled.
+      "replicationLogArchivingEnabled": True or False, # Reserved for future use.
+      "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+      "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+    },
+    "collation": "A String", # The name of server Instance collation.
+    "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+    "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB.
+    "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+    "databaseFlags": [ # The database flags passed to the instance at startup.
+      { # Database flags for Cloud SQL instances.
+        "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.
+        "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value.
+      },
+    ],
+    "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+    "denyMaintenancePeriods": [ # Deny maintenance periods
+      { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+        "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+      },
+    ],
+    "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+      "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled.
+      "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.
+      "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+      "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled.
+      "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled.
+    },
+    "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+      "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**).
+        { # An entry for an Access Control list.
+          "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+          "kind": "A String", # This is always **sql#aclEntry**.
+          "name": "A String", # Optional. A label to identify this entry.
+          "value": "A String", # The allowlisted value for the access control list.
+        },
+      ],
+      "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not.
+      "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+      "requireSsl": True or False, # Whether SSL connections over IP are enforced or not.
+    },
+    "kind": "A String", # This is always **sql#settings**.
+    "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+      "followGaeApplication": "A String", # The App Engine application to follow, it must be in the same region as the Cloud SQL instance.
+      "kind": "A String", # This is always **sql#locationPreference**.
+      "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+      "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+    },
+    "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+      "day": 42, # day of week (1-7), starting on Monday.
+      "hour": 42, # hour of day - 0 to 23.
+      "kind": "A String", # This is always **sql#maintenanceWindow**.
+      "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).
+    },
+    "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+    "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+    "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+    "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true.
+    "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+    "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+    "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+      "a_key": "A String",
+    },
+  },
+  "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+  "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension.
+    "A String",
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
\ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.operations.html b/docs/dyn/sqladmin_v1.operations.html new file mode 100644 index 00000000000..291c89673fa --- /dev/null +++ b/docs/dyn/sqladmin_v1.operations.html @@ -0,0 +1,289 @@ + + + +

Cloud SQL Admin API . operations

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ get(project, operation, x__xgafv=None)

+

Retrieves an instance operation that has been performed on an instance.

+

+ list(project, instance=None, maxResults=None, pageToken=None, x__xgafv=None)

+

Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.

+

+ list_next(previous_request, previous_response)

+

Retrieves the next page of results.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ get(project, operation, x__xgafv=None) +
Retrieves an instance operation that has been performed on an instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  operation: string, Instance operation ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ list(project, instance=None, maxResults=None, pageToken=None, x__xgafv=None) +
Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID.
+  maxResults: integer, Maximum number of operations per response.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Operations list response.
+  "items": [ # List of operation resources.
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+      "backupContext": { # Backup context. # The context for backup operation, if applicable.
+        "backupId": "A String", # The identifier of the backup.
+        "kind": "A String", # This is always **sql#backupContext**.
+      },
+      "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+      "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+        "errors": [ # The list of errors encountered while processing this operation.
+          { # Database instance operation error.
+            "code": "A String", # Identifies the specific error that occurred.
+            "kind": "A String", # This is always **sql#operationError**.
+            "message": "A String", # Additional information about the error encountered.
+          },
+        ],
+        "kind": "A String", # This is always **sql#operationErrors**.
+      },
+      "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+        "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+          "selectQuery": "A String", # The select query used to extract the data.
+        },
+        "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+          "A String",
+        ],
+        "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+        "kind": "A String", # This is always **sql#exportContext**.
+        "offload": True or False, # Option for export offload.
+        "sqlExportOptions": { # Options for exporting data as SQL statements.
+          "mysqlExportOptions": { # Options for exporting from MySQL.
+            "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+          },
+          "schemaOnly": True or False, # Export only schemas.
+          "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+            "A String",
+          ],
+        },
+        "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+      },
+      "importContext": { # Database instance import context. # The context for import operation, if applicable.
+        "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+          "encryptionOptions": {
+            "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+            "pvkPassword": "A String", # Password that encrypts the private key
+            "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+          },
+        },
+        "csvImportOptions": { # Options for importing data as CSV.
+          "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+            "A String",
+          ],
+          "table": "A String", # The table to which CSV data is imported.
+        },
+        "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+        "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+        "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+        "kind": "A String", # This is always **sql#importContext**.
+        "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+      },
+      "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+      "kind": "A String", # This is always **sql#operation**.
+      "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+      "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+      "selfLink": "A String", # The URI of this resource.
+      "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+      "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+      "targetId": "A String", # Name of the database instance related to this operation.
+      "targetLink": "A String",
+      "targetProject": "A String", # The project ID of the target instance related to this operation.
+      "user": "A String", # The email address of the user who initiated this operation.
+    },
+  ],
+  "kind": "A String", # This is always *sql#operationsList*.
+  "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+}
+
+ +
+ list_next(previous_request, previous_response) +
Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.projects.instances.html b/docs/dyn/sqladmin_v1.projects.instances.html index f0c21d36937..e84b557d7e2 100644 --- a/docs/dyn/sqladmin_v1.projects.instances.html +++ b/docs/dyn/sqladmin_v1.projects.instances.html @@ -74,23 +74,18 @@

Cloud SQL Admin API . projects . instances

Instance Methods

-

- createEphemeral() -

-

Returns the createEphemeral Resource.

-

close()

Close httplib2 connections.

- generateEphemeralCert(project, instance, body=None, x__xgafv=None)

-

Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.

+ rescheduleMaintenance(project, instance, body=None, x__xgafv=None)

+

Reschedules the maintenance on the given instance.

- get(project, instance, x__xgafv=None)

-

Retrieves a resource containing information about a Cloud SQL instance.

+ startExternalSync(project, instance, skipVerification=None, syncMode=None, x__xgafv=None)

+

Start External primary instance migration.

- getConnectSettings(project, instance, readTime=None, x__xgafv=None)

-

Retrieves connect settings about a Cloud SQL instance.

+ verifyExternalSyncSettings(project, instance, syncMode=None, verifyConnectionOnly=None, x__xgafv=None)

+

Verify External primary instance external sync settings.

Method Details

close() @@ -98,19 +93,20 @@

Method Details

- generateEphemeralCert(project, instance, body=None, x__xgafv=None) -
Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.
+    rescheduleMaintenance(project, instance, body=None, x__xgafv=None)
+  
Reschedules the maintenance on the given instance.
 
 Args:
-  project: string, Project ID of the project that contains the instance. (required)
+  project: string, ID of the project that contains the instance. (required)
   instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
   body: object, The request body.
     The object takes the form of:
 
-{ # Ephemeral certificate creation request.
-  "access_token": "A String", # Optional. Access token to include in the signed certificate.
-  "public_key": "A String", # PEM encoded public key to include in the signed certificate.
-  "readTime": "A String", # Optional. Optional snapshot read timestamp to trade freshness for performance.
+{ # Reschedule options for maintenance windows.
+  "reschedule": { # Required. The type of the reschedule the user wants.
+    "rescheduleType": "A String", # Required. The type of the reschedule.
+    "scheduleTime": "A String", # Optional. Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+  },
 }
 
   x__xgafv: string, V1 error format.
@@ -121,27 +117,90 @@ 

Method Details

Returns: An object of the form: - { # Ephemeral certificate creation request. - "ephemeralCert": { # SslCerts Resource # Generated cert - "cert": "A String", # PEM representation. - "certSerialNumber": "A String", # Serial number, as extracted from the certificate. - "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+. - "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z** - "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. - "instance": "A String", # Name of the database instance. - "kind": "A String", # This is always sql#sslCert. - "sha1Fingerprint": "A String", # Sha1 Fingerprint. + { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource. + "backupContext": { # Backup context. # The context for backup operation, if applicable. + "backupId": "A String", # The identifier of the backup. + "kind": "A String", # This is always **sql#backupContext**. + }, + "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated. + "errors": [ # The list of errors encountered while processing this operation. + { # Database instance operation error. + "code": "A String", # Identifies the specific error that occurred. + "kind": "A String", # This is always **sql#operationError**. + "message": "A String", # Additional information about the error encountered. + }, + ], + "kind": "A String", # This is always **sql#operationErrors**. }, + "exportContext": { # Database instance export context. # The context for export operation, if applicable. + "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only. + "selectQuery": "A String", # The select query used to extract the data. + }, + "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**. + "A String", + ], + "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance. + "kind": "A String", # This is always **sql#exportContext**. + "offload": True or False, # Option for export offload. + "sqlExportOptions": { # Options for exporting data as SQL statements. + "mysqlExportOptions": { # Options for exporting from MySQL. + "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF. + }, + "schemaOnly": True or False, # Export only schemas. + "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table. + "A String", + ], + }, + "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed. + }, + "importContext": { # Database instance import context. # The context for import operation, if applicable. + "bakImportOptions": { # Import parameters specific to SQL Server .BAK files + "encryptionOptions": { + "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file. + "pvkPassword": "A String", # Password that encrypts the private key + "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file. + }, + }, + "csvImportOptions": { # Options for importing data as CSV. + "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data. + "A String", + ], + "table": "A String", # The table to which CSV data is imported. + }, + "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified. + "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. + "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only. + "kind": "A String", # This is always **sql#importContext**. + "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file. + }, + "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "kind": "A String", # This is always **sql#operation**. + "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation. + "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE** + "selfLink": "A String", # The URI of this resource. + "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED** + "targetId": "A String", # Name of the database instance related to this operation. + "targetLink": "A String", + "targetProject": "A String", # The project ID of the target instance related to this operation. + "user": "A String", # The email address of the user who initiated this operation. }
- get(project, instance, x__xgafv=None) -
Retrieves a resource containing information about a Cloud SQL instance.
+    startExternalSync(project, instance, skipVerification=None, syncMode=None, x__xgafv=None)
+  
Start External primary instance migration.
 
 Args:
-  project: string, Project ID of the project that contains the instance. (required)
-  instance: string, Database instance ID. This does not include the project ID. (required)
+  project: string, ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  skipVerification: boolean, Whether to skip the verification step (VESS).
+  syncMode: string, External sync mode.
+    Allowed values
+      EXTERNAL_SYNC_MODE_UNSPECIFIED - Unknown external sync mode, will be defaulted to ONLINE mode
+      ONLINE - Online external sync will set up replication after initial data external sync
+      OFFLINE - Offline external sync only dumps and loads a one-time snapshot of the primary instance's data
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -150,208 +209,90 @@ 

Method Details

Returns: An object of the form: - { # A Cloud SQL instance resource. - "backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. - "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. - "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. - "kind": "A String", # This is always **sql#diskEncryptionConfiguration**. - "kmsKeyName": "A String", # Resource name of KMS key for disk encryption - }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. - "kind": "A String", # This is always **sql#diskEncryptionStatus**. - "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource - }, - "encryptedRootPassword": "A String", # For internal usage only. The encrypted password. - "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. - "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "failoverInstance": { # Reference to another Cloud SQL instance. # A reference to the failover replica. If specified at instance creation, a failover replica is created for the instance. Currently, the failover replica can only be created in the same region as the primary instance. - "name": "A String", # The name of the Cloud SQL instance being referenced. - "region": "A String", # The region of the Cloud SQL instance being referenced. - }, - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. - }, - "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. - "installedVersion": "A String", # installed_version stores the current fully resolved database version including minor version such as MySQL_5.6.50 - "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. - "instanceUid": "A String", # Uid of the Cloud SQL instance. Used by Pantheon to check instance is created - "ipAddresses": [ # The assigned IP addresses for the instance. - { # Database instance IP Mapping. - "ipAddress": "A String", # The IP address assigned. - "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired. - "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported. - }, - ], - "ipv6Address": "A String", # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances. - "kind": "A String", # This is always *sql#instance*. - "masterInstance": { # Reference to another Cloud SQL instance. # The reference to the instance which will act as primary in the replication setup. - "name": "A String", # The name of the Cloud SQL instance being referenced. - "region": "A String", # The region of the Cloud SQL instance being referenced. - }, - "masterInstanceName": "A String", # The name of the instance which will act as primary in the replication setup. - "maxDiskSize": "A String", # The maximum disk size of the instance in bytes. - "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID. - "onPremisesConfiguration": { # On-premises instance configuration. # Configuration specific to on-premises instances. - "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate. - "clientCertificate": "A String", # PEM representation of the replica's x509 certificate. - "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. - "dumpFilePath": "A String", # The dump file to create the Cloud SQL replica. - "hostPort": "A String", # The host and port of the on-premises instance in host:port format - "kind": "A String", # This is always *sql#onPremisesConfiguration*. - "password": "A String", # The password for connecting to on-premises instance. - "username": "A String", # The username for connecting to on-premises instance. - }, - "outOfDiskReport": { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job - "sqlMinRecommendedIncreaseSizeGb": 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend - "sqlOutOfDiskState": "A String", # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job - }, - "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable. - "region": "A String", # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation. - "replicaConfiguration": { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas. - "failoverTarget": True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance. - "kind": "A String", # This is always *sql#replicaConfiguration*. - "mysqlReplicaConfiguration": { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory. - "caCertificate": "A String", # PEM representation of the trusted CA's x509 certificate. - "clientCertificate": "A String", # PEM representation of the replica's x509 certificate. - "clientKey": "A String", # PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. - "connectRetryInterval": 42, # Seconds to wait between connect retries. MySQL's default is 60 seconds. - "dumpFilePath": "A String", # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump. - "kind": "A String", # This is always **sql#mysqlReplicaConfiguration**. - "masterHeartbeatPeriod": "A String", # Interval in milliseconds between replication heartbeats. - "password": "A String", # The password for the replication connection. - "sslCipher": "A String", # A list of permissible ciphers to use for SSL encryption. - "username": "A String", # The username for the replication connection. - "verifyServerCertificate": True or False, # Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake. - }, - }, - "replicaInstances": [ # The replicas of the instance. - { # Reference to another Cloud SQL instance. - "name": "A String", # The name of the Cloud SQL instance being referenced. - "region": "A String", # The region of the Cloud SQL instance being referenced. - }, - ], - "replicaNames": [ # The replicas of the instance. - "A String", - ], - "rootPassword": "A String", # Initial root password. Use only on creation. - "satisfiesPzs": True or False, # The status indicating if instance satisfiesPzs. Reserved for future use. - "scheduledMaintenance": { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance. - "canDefer": True or False, - "canReschedule": True or False, # If the scheduled maintenance can be rescheduled. - "scheduleDeadlineTime": "A String", # Maintenance cannot be rescheduled to start beyond this deadline. - "startTime": "A String", # The start time of any upcoming scheduled maintenance for this instance. - }, - "secondaryGceZone": "A String", # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use. - "selfLink": "A String", # The URI of this resource. - "serverCaCert": { # SslCerts Resource # SSL configuration. - "cert": "A String", # PEM representation. - "certSerialNumber": "A String", # Serial number, as extracted from the certificate. - "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+. - "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z** - "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. - "instance": "A String", # Name of the database instance. - "kind": "A String", # This is always sql#sslCert. - "sha1Fingerprint": "A String", # Sha1 Fingerprint. + { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource. + "backupContext": { # Backup context. # The context for backup operation, if applicable. + "backupId": "A String", # The identifier of the backup. + "kind": "A String", # This is always **sql#backupContext**. }, - "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance. This property is read-only. - "settings": { # Database instance settings. # The user settings. - "activationPolicy": "A String", # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives. - "activeDirectoryConfig": { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server. - "domain": "A String", # The name of the domain (e.g., mydomain.com). - "kind": "A String", # This is always sql#activeDirectoryConfig. - }, - "availabilityType": "A String", # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](/sql/docs/postgres/high-availability). - "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance. - "backupRetentionSettings": { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings. - "retainedBackups": 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is 'COUNT', we will retain this many backups. - "retentionUnit": "A String", # The unit that 'retained_backups' represents. + "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated. + "errors": [ # The list of errors encountered while processing this operation. + { # Database instance operation error. + "code": "A String", # Identifies the specific error that occurred. + "kind": "A String", # This is always **sql#operationError**. + "message": "A String", # Additional information about the error encountered. }, - "binaryLogEnabled": True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well. - "enabled": True or False, # Whether this configuration is enabled. - "kind": "A String", # This is always **sql#backupConfiguration**. - "location": "A String", # Location of the backup - "pointInTimeRecoveryEnabled": True or False, # (Postgres only) Whether point in time recovery is enabled. - "replicationLogArchivingEnabled": True or False, # Reserved for future use. - "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**. - "transactionLogRetentionDays": 42, # The number of days of transaction logs we retain for point in time restore, from 1-7. + ], + "kind": "A String", # This is always **sql#operationErrors**. + }, + "exportContext": { # Database instance export context. # The context for export operation, if applicable. + "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only. + "selectQuery": "A String", # The select query used to extract the data. }, - "collation": "A String", # The name of server Instance collation. - "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances. - "dataDiskSizeGb": "A String", # The size of data disk, in GB. The data disk size minimum is 10GB. - "dataDiskType": "A String", # The type of data disk: **PD_SSD** (default) or **PD_HDD**. - "databaseFlags": [ # The database flags passed to the instance at startup. - { # Database flags for Cloud SQL instances. - "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](/sql/docs/mysql/flags) in the Cloud SQL documentation. - "value": "A String", # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn't take a value. - }, + "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**. + "A String", ], - "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not. - "denyMaintenancePeriods": [ # Deny maintenance periods - { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied. - "endDate": "A String", # "deny maintenance period" end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01 - "startDate": "A String", # "deny maintenance period" start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01 - "time": "A String", # Time in UTC when the "deny maintenance period" starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00 + "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance. + "kind": "A String", # This is always **sql#exportContext**. + "offload": True or False, # Option for export offload. + "sqlExportOptions": { # Options for exporting data as SQL statements. + "mysqlExportOptions": { # Options for exporting from MySQL. + "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF. }, - ], - "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres. - "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled. - "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database. - "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. - "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled. - "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled. - }, - "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. - "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: **192.168.100.0/24**). - { # An entry for an Access Control list. - "expirationTime": "A String", # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. - "kind": "A String", # This is always **sql#aclEntry**. - "name": "A String", # Optional. A label to identify this entry. - "value": "A String", # The allowlisted value for the access control list. - }, + "schemaOnly": True or False, # Export only schemas. + "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table. + "A String", ], - "ipv4Enabled": True or False, # Whether the instance is assigned a public IP address or not. - "privateNetwork": "A String", # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set. - "requireSsl": True or False, # Whether SSL connections over IP are enforced or not. - }, - "kind": "A String", # This is always **sql#settings**. - "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance. - "kind": "A String", # This is always **sql#locationPreference**. - "secondaryZone": "A String", # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use. - "zone": "A String", # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.). }, - "maintenanceWindow": { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes. - "day": 42, # day of week (1-7), starting on Monday. - "hour": 42, # hour of day - 0 to 23. - "kind": "A String", # This is always **sql#maintenanceWindow**. - "updateTrack": "A String", # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instance-settings#maintenance-timing-2ndgen). + "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed. + }, + "importContext": { # Database instance import context. # The context for import operation, if applicable. + "bakImportOptions": { # Import parameters specific to SQL Server .BAK files + "encryptionOptions": { + "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file. + "pvkPassword": "A String", # Password that encrypts the private key + "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file. + }, }, - "pricingPlan": "A String", # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances. - "replicationType": "A String", # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances. - "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value. - "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true. - "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. - "tier": "A String", # The tier (or machine type) for this instance, for example **db-custom-1-3840**. - "userLabels": { # User-provided labels, represented as a dictionary where each label is a single key value pair. - "a_key": "A String", + "csvImportOptions": { # Options for importing data as CSV. + "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data. + "A String", + ], + "table": "A String", # The table to which CSV data is imported. }, + "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified. + "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. + "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only. + "kind": "A String", # This is always **sql#importContext**. + "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file. }, - "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed. - "suspensionReason": [ # If the instance state is SUSPENDED, the reason for the suspension. - "A String", - ], + "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "kind": "A String", # This is always **sql#operation**. + "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation. + "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE** + "selfLink": "A String", # The URI of this resource. + "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. + "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED** + "targetId": "A String", # Name of the database instance related to this operation. + "targetLink": "A String", + "targetProject": "A String", # The project ID of the target instance related to this operation. + "user": "A String", # The email address of the user who initiated this operation. }
- getConnectSettings(project, instance, readTime=None, x__xgafv=None) -
Retrieves connect settings about a Cloud SQL instance.
+    verifyExternalSyncSettings(project, instance, syncMode=None, verifyConnectionOnly=None, x__xgafv=None)
+  
Verify External primary instance external sync settings.
 
 Args:
   project: string, Project ID of the project that contains the instance. (required)
   instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
-  readTime: string, Optional. Optional snapshot read timestamp to trade freshness for performance.
+  syncMode: string, External sync mode
+    Allowed values
+      EXTERNAL_SYNC_MODE_UNSPECIFIED - Unknown external sync mode, will be defaulted to ONLINE mode
+      ONLINE - Online external sync will set up replication after initial data external sync
+      OFFLINE - Offline external sync only dumps and loads a one-time snapshot of the primary instance's data
+  verifyConnectionOnly: boolean, Flag to enable verifying connection only
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -360,27 +301,22 @@ 

Method Details

Returns: An object of the form: - { # Connect settings retrieval response. - "backendType": "A String", # **SECOND_GEN**: Cloud SQL database instance. **EXTERNAL**: A database server that is not managed by Google. This property is read-only; use the **tier** property in the **settings** object to determine the database type. - "databaseVersion": "A String", # The database engine type and version. The **databaseVersion** field cannot be changed after instance creation. MySQL instances: **MYSQL_8_0**, **MYSQL_5_7** (default), or **MYSQL_5_6**. PostgreSQL instances: **POSTGRES_9_6**, **POSTGRES_10**, **POSTGRES_11** or **POSTGRES_12** (default). SQL Server instances: **SQLSERVER_2017_STANDARD** (default), **SQLSERVER_2017_ENTERPRISE**, **SQLSERVER_2017_EXPRESS**, or **SQLSERVER_2017_WEB**. - "ipAddresses": [ # The assigned IP addresses for the instance. - { # Database instance IP Mapping. - "ipAddress": "A String", # The IP address assigned. - "timeToRetire": "A String", # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired. - "type": "A String", # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported. + { # Instance verify external sync settings response. + "errors": [ # List of migration violations. + { # External primary instance migration setting error. + "detail": "A String", # Additional information about the error encountered. + "kind": "A String", # Can be *sql#externalSyncSettingError* or *sql#externalSyncSettingWarning*. + "type": "A String", # Identifies the specific error that occurred. + }, + ], + "kind": "A String", # This is always *sql#migrationSettingErrorList*. + "warnings": [ # List of migration warnings. + { # External primary instance migration setting error. + "detail": "A String", # Additional information about the error encountered. + "kind": "A String", # Can be *sql#externalSyncSettingError* or *sql#externalSyncSettingWarning*. + "type": "A String", # Identifies the specific error that occurred. }, ], - "kind": "A String", # This is always `sql#connectSettings`. - "serverCaCert": { # SslCerts Resource # SSL configuration. - "cert": "A String", # PEM representation. - "certSerialNumber": "A String", # Serial number, as extracted from the certificate. - "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+. - "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z** - "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. - "instance": "A String", # Name of the database instance. - "kind": "A String", # This is always sql#sslCert. - "sha1Fingerprint": "A String", # Sha1 Fingerprint. - }, }
diff --git a/docs/dyn/sqladmin_v1.sslCerts.html b/docs/dyn/sqladmin_v1.sslCerts.html new file mode 100644 index 00000000000..8a5d9464a70 --- /dev/null +++ b/docs/dyn/sqladmin_v1.sslCerts.html @@ -0,0 +1,407 @@ + + + +

Cloud SQL Admin API . sslCerts

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ createEphemeral(project, instance, body=None, x__xgafv=None)

+

Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.

+

+ delete(project, instance, sha1Fingerprint, x__xgafv=None)

+

Deletes the SSL certificate. For First Generation instances, the certificate remains valid until the instance is restarted.

+

+ get(project, instance, sha1Fingerprint, x__xgafv=None)

+

Retrieves a particular SSL certificate. Does not include the private key (required for usage). The private key must be saved from the response to initial creation.

+

+ insert(project, instance, body=None, x__xgafv=None)

+

Creates an SSL certificate and returns it along with the private key and server certificate authority. The new certificate will not be usable until the instance is restarted.

+

+ list(project, instance, x__xgafv=None)

+

Lists all of the current SSL certificates for the instance.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ createEphemeral(project, instance, body=None, x__xgafv=None) +
Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.
+
+Args:
+  project: string, Project ID of the Cloud SQL project. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # SslCerts create ephemeral certificate request.
+  "access_token": "A String", # Access token to include in the signed certificate.
+  "public_key": "A String", # PEM encoded public key to include in the signed certificate.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # SslCerts Resource
+  "cert": "A String", # PEM representation.
+  "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+  "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+  "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+  "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "instance": "A String", # Name of the database instance.
+  "kind": "A String", # This is always sql#sslCert.
+  "selfLink": "A String", # The URI of this resource.
+  "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+}
+
+ +
+ delete(project, instance, sha1Fingerprint, x__xgafv=None) +
Deletes the SSL certificate. For First Generation instances, the certificate remains valid until the instance is restarted.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  sha1Fingerprint: string, Sha1 FingerPrint. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ get(project, instance, sha1Fingerprint, x__xgafv=None) +
Retrieves a particular SSL certificate. Does not include the private key (required for usage). The private key must be saved from the response to initial creation.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  sha1Fingerprint: string, Sha1 FingerPrint. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # SslCerts Resource
+  "cert": "A String", # PEM representation.
+  "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+  "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+  "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+  "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "instance": "A String", # Name of the database instance.
+  "kind": "A String", # This is always sql#sslCert.
+  "selfLink": "A String", # The URI of this resource.
+  "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+}
+
+ +
+ insert(project, instance, body=None, x__xgafv=None) +
Creates an SSL certificate and returns it along with the private key and server certificate authority. The new certificate will not be usable until the instance is restarted.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # SslCerts insert request.
+  "commonName": "A String", # User supplied name. Must be a distinct name from the other certificates for this instance.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # SslCert insert response.
+  "clientCert": { # SslCertDetail. # The new client certificate and private key.
+    "certInfo": { # SslCerts Resource # The public information about the cert.
+      "cert": "A String", # PEM representation.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+      "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+      "instance": "A String", # Name of the database instance.
+      "kind": "A String", # This is always sql#sslCert.
+      "selfLink": "A String", # The URI of this resource.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+    },
+    "certPrivateKey": "A String", # The private key for the client cert, in pem format. Keep private in order to protect your security.
+  },
+  "kind": "A String", # This is always *sql#sslCertsInsert*.
+  "operation": { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource. # The operation to track the ssl certs insert request.
+    "backupContext": { # Backup context. # The context for backup operation, if applicable.
+      "backupId": "A String", # The identifier of the backup.
+      "kind": "A String", # This is always **sql#backupContext**.
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "code": "A String", # Identifies the specific error that occurred.
+          "kind": "A String", # This is always **sql#operationError**.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+      "kind": "A String", # This is always **sql#operationErrors**.
+    },
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+        "A String",
+      ],
+      "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+      "kind": "A String", # This is always **sql#exportContext**.
+      "offload": True or False, # Option for export offload.
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "mysqlExportOptions": { # Options for exporting from MySQL.
+          "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+        },
+        "schemaOnly": True or False, # Export only schemas.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+          "A String",
+        ],
+      },
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+    },
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+        "encryptionOptions": {
+          "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+          "pvkPassword": "A String", # Password that encrypts the private key
+          "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        },
+      },
+      "csvImportOptions": { # Options for importing data as CSV.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+        "table": "A String", # The table to which CSV data is imported.
+      },
+      "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+      "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+      "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+      "kind": "A String", # This is always **sql#importContext**.
+      "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+    },
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "kind": "A String", # This is always **sql#operation**.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+    "selfLink": "A String", # The URI of this resource.
+    "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "targetLink": "A String",
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "user": "A String", # The email address of the user who initiated this operation.
+  },
+  "serverCaCert": { # SslCerts Resource # The server Certificate Authority's certificate. If this is missing you can force a new one to be generated by calling resetSslConfig method on instances resource.
+    "cert": "A String", # PEM representation.
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    "instance": "A String", # Name of the database instance.
+    "kind": "A String", # This is always sql#sslCert.
+    "selfLink": "A String", # The URI of this resource.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+  },
+}
+
+ +
+ list(project, instance, x__xgafv=None) +
Lists all of the current SSL certificates for the instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # SslCerts list response.
+  "items": [ # List of client certificates for the instance.
+    { # SslCerts Resource
+      "cert": "A String", # PEM representation.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "createTime": "A String", # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+      "expirationTime": "A String", # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+      "instance": "A String", # Name of the database instance.
+      "kind": "A String", # This is always sql#sslCert.
+      "selfLink": "A String", # The URI of this resource.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+    },
+  ],
+  "kind": "A String", # This is always *sql#sslCertsList*.
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.tiers.html b/docs/dyn/sqladmin_v1.tiers.html new file mode 100644 index 00000000000..fa2285357da --- /dev/null +++ b/docs/dyn/sqladmin_v1.tiers.html @@ -0,0 +1,119 @@ + + + +

Cloud SQL Admin API . tiers

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ list(project, x__xgafv=None)

+

Lists all available machine types (tiers) for Cloud SQL, for example, db-custom-1-3840. For more information, see https://cloud.google.com/sql/pricing.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ list(project, x__xgafv=None) +
Lists all available machine types (tiers) for Cloud SQL, for example, db-custom-1-3840. For more information, see https://cloud.google.com/sql/pricing.
+
+Args:
+  project: string, Project ID of the project for which to list tiers. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Tiers list response.
+  "items": [ # List of tiers.
+    { # A Google Cloud SQL service tier resource.
+      "DiskQuota": "A String", # The maximum disk size of this tier in bytes.
+      "RAM": "A String", # The maximum RAM usage of this tier in bytes.
+      "kind": "A String", # This is always *sql#tier*.
+      "region": [ # The applicable regions for this tier.
+        "A String",
+      ],
+      "tier": "A String", # An identifier for the machine type, for example, db-custom-1-3840. For related information, see Pricing.
+    },
+  ],
+  "kind": "A String", # This is always *sql#tiersList*.
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1.users.html b/docs/dyn/sqladmin_v1.users.html new file mode 100644 index 00000000000..4222aa1c4ab --- /dev/null +++ b/docs/dyn/sqladmin_v1.users.html @@ -0,0 +1,453 @@ + + + +

Cloud SQL Admin API . users

+

Instance Methods

+

+ close()

+

Close httplib2 connections.

+

+ delete(project, instance, host=None, name=None, x__xgafv=None)

+

Deletes a user from a Cloud SQL instance.

+

+ insert(project, instance, body=None, x__xgafv=None)

+

Creates a new user in a Cloud SQL instance.

+

+ list(project, instance, body_etag=None, body_host=None, body_instance=None, body_kind=None, body_name=None, body_password=None, body_project=None, body_sqlserverUserDetails_disabled=None, body_sqlserverUserDetails_serverRoles=None, body_type=None, x__xgafv=None)

+

Lists users in the specified Cloud SQL instance.

+

+ update(project, instance, body=None, host=None, name=None, x__xgafv=None)

+

Updates an existing user in a Cloud SQL instance.

+

Method Details

+
+ close() +
Close httplib2 connections.
+
+ +
+ delete(project, instance, host=None, name=None, x__xgafv=None) +
Deletes a user from a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  host: string, Host of the user in the instance.
+  name: string, Name of the user in the instance.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ insert(project, instance, body=None, x__xgafv=None) +
Creates a new user in a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud SQL user resource.
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+  "host": "A String", # The host name from which the user can connect. For *insert* operations, host defaults to an empty string. For *update* operations, host is specified as part of the request URL. The host name cannot be updated after insertion.
+  "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for *update* since it is already specified on the URL.
+  "kind": "A String", # This is always *sql#user*.
+  "name": "A String", # The name of the user in the Cloud SQL instance. Can be omitted for *update* since it is already specified in the URL.
+  "password": "A String", # The password for the user.
+  "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for *update* since it is already specified on the URL.
+  "sqlserverUserDetails": { # Represents a Sql Server user on the Cloud SQL instance.
+    "disabled": True or False, # If the user has been disabled
+    "serverRoles": [ # The server roles for this user
+      "A String",
+    ],
+  },
+  "type": "A String", # The user type. It determines the method to authenticate the user during login. The default is the database's built-in user type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ +
+ list(project, instance, body_etag=None, body_host=None, body_instance=None, body_kind=None, body_name=None, body_password=None, body_project=None, body_sqlserverUserDetails_disabled=None, body_sqlserverUserDetails_serverRoles=None, body_type=None, x__xgafv=None) +
Lists users in the specified Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  body_etag: string, This field is deprecated and will be removed from a future version of the API.
+  body_host: string, The host name from which the user can connect. For *insert* operations, host defaults to an empty string. For *update* operations, host is specified as part of the request URL. The host name cannot be updated after insertion.
+  body_instance: string, The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for *update* since it is already specified on the URL.
+  body_kind: string, This is always *sql#user*.
+  body_name: string, The name of the user in the Cloud SQL instance. Can be omitted for *update* since it is already specified in the URL.
+  body_password: string, The password for the user.
+  body_project: string, The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for *update* since it is already specified on the URL.
+  body_sqlserverUserDetails_disabled: boolean, If the user has been disabled
+  body_sqlserverUserDetails_serverRoles: string, The server roles for this user (repeated)
+  body_type: string, The user type. It determines the method to authenticate the user during login. The default is the database's built-in user type.
+    Allowed values
+      BUILT_IN - The database's built-in user type.
+      CLOUD_IAM_USER - Cloud IAM user.
+      CLOUD_IAM_SERVICE_ACCOUNT - Cloud IAM service account.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # User list response.
+  "items": [ # List of user resources in the instance.
+    { # A Cloud SQL user resource.
+      "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+      "host": "A String", # The host name from which the user can connect. For *insert* operations, host defaults to an empty string. For *update* operations, host is specified as part of the request URL. The host name cannot be updated after insertion.
+      "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for *update* since it is already specified on the URL.
+      "kind": "A String", # This is always *sql#user*.
+      "name": "A String", # The name of the user in the Cloud SQL instance. Can be omitted for *update* since it is already specified in the URL.
+      "password": "A String", # The password for the user.
+      "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for *update* since it is already specified on the URL.
+      "sqlserverUserDetails": { # Represents a Sql Server user on the Cloud SQL instance.
+        "disabled": True or False, # If the user has been disabled
+        "serverRoles": [ # The server roles for this user
+          "A String",
+        ],
+      },
+      "type": "A String", # The user type. It determines the method to authenticate the user during login. The default is the database's built-in user type.
+    },
+  ],
+  "kind": "A String", # This is always *sql#usersList*.
+  "nextPageToken": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+}
+
+ +
+ update(project, instance, body=None, host=None, name=None, x__xgafv=None) +
Updates an existing user in a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Cloud SQL user resource.
+  "etag": "A String", # This field is deprecated and will be removed from a future version of the API.
+  "host": "A String", # The host name from which the user can connect. For *insert* operations, host defaults to an empty string. For *update* operations, host is specified as part of the request URL. The host name cannot be updated after insertion.
+  "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for *update* since it is already specified on the URL.
+  "kind": "A String", # This is always *sql#user*.
+  "name": "A String", # The name of the user in the Cloud SQL instance. Can be omitted for *update* since it is already specified in the URL.
+  "password": "A String", # The password for the user.
+  "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for *update* since it is already specified on the URL.
+  "sqlserverUserDetails": { # Represents a Sql Server user on the Cloud SQL instance.
+    "disabled": True or False, # If the user has been disabled
+    "serverRoles": [ # The server roles for this user
+      "A String",
+    ],
+  },
+  "type": "A String", # The user type. It determines the method to authenticate the user during login. The default is the database's built-in user type.
+}
+
+  host: string, Optional. Host of the user in the instance.
+  name: string, Name of the user in the instance.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.
+  "backupContext": { # Backup context. # The context for backup operation, if applicable.
+    "backupId": "A String", # The identifier of the backup.
+    "kind": "A String", # This is always **sql#backupContext**.
+  },
+  "endTime": "A String", # The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
+    "errors": [ # The list of errors encountered while processing this operation.
+      { # Database instance operation error.
+        "code": "A String", # Identifies the specific error that occurred.
+        "kind": "A String", # This is always **sql#operationError**.
+        "message": "A String", # Additional information about the error encountered.
+      },
+    ],
+    "kind": "A String", # This is always **sql#operationErrors**.
+  },
+  "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+    "csvExportOptions": { # Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.
+      "selectQuery": "A String", # The select query used to extract the data.
+    },
+    "databases": [ # Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.
+      "A String",
+    ],
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.
+    "kind": "A String", # This is always **sql#exportContext**.
+    "offload": True or False, # Option for export offload.
+    "sqlExportOptions": { # Options for exporting data as SQL statements.
+      "mysqlExportOptions": { # Options for exporting from MySQL.
+        "masterData": 42, # Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.
+      },
+      "schemaOnly": True or False, # Export only schemas.
+      "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.
+        "A String",
+      ],
+    },
+    "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.
+  },
+  "importContext": { # Database instance import context. # The context for import operation, if applicable.
+    "bakImportOptions": { # Import parameters specific to SQL Server .BAK files
+      "encryptionOptions": {
+        "certPath": "A String", # Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+        "pvkPassword": "A String", # Password that encrypts the private key
+        "pvkPath": "A String", # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.
+      },
+    },
+    "csvImportOptions": { # Options for importing data as CSV.
+      "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+        "A String",
+      ],
+      "table": "A String", # The table to which CSV data is imported.
+    },
+    "database": "A String", # The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.
+    "fileType": "A String", # The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.
+    "importUser": "A String", # The PostgreSQL user for this import operation. PostgreSQL instances only.
+    "kind": "A String", # This is always **sql#importContext**.
+    "uri": "A String", # Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.
+  },
+  "insertTime": "A String", # The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "kind": "A String", # This is always **sql#operation**.
+  "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+  "operationType": "A String", # The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**
+  "selfLink": "A String", # The URI of this resource.
+  "startTime": "A String", # The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  "status": "A String", # The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**
+  "targetId": "A String", # Name of the database instance related to this operation.
+  "targetLink": "A String",
+  "targetProject": "A String", # The project ID of the target instance related to this operation.
+  "user": "A String", # The email address of the user who initiated this operation.
+}
+
+ + \ No newline at end of file diff --git a/docs/dyn/sqladmin_v1beta4.backupRuns.html b/docs/dyn/sqladmin_v1beta4.backupRuns.html index 8868eab1091..5a38d328c24 100644 --- a/docs/dyn/sqladmin_v1beta4.backupRuns.html +++ b/docs/dyn/sqladmin_v1beta4.backupRuns.html @@ -85,7 +85,7 @@

Instance Methods

Retrieves a resource containing information about a backup run.

insert(project, instance, body=None, x__xgafv=None)

-

Creates a new backup run on demand. This method is applicable only to Second Generation instances.

+

Creates a new backup run on demand.

list(project, instance, maxResults=None, pageToken=None, x__xgafv=None)

Lists all backup runs associated with the project or a given instance and configuration in the reverse chronological order of the backup initiation time.

@@ -105,7 +105,7 @@

Method Details

Args: project: string, Project ID of the project that contains the instance. (required) instance: string, Cloud SQL instance ID. This does not include the project ID. (required) - id: string, The ID of the Backup Run to delete. To find a Backup Run ID, use the list method. (required) + id: string, The ID of the backup run to delete. To find a backup run ID, use the list method. (required) x__xgafv: string, V1 error format. Allowed values 1 - v1 error format @@ -192,7 +192,7 @@

Method Details

Args: project: string, Project ID of the project that contains the instance. (required) instance: string, Cloud SQL instance ID. This does not include the project ID. (required) - id: string, The ID of this Backup Run. (required) + id: string, The ID of this backup run. (required) x__xgafv: string, V1 error format. Allowed values 1 - v1 error format @@ -204,11 +204,11 @@

Method Details

{ # A BackupRun resource. "backupKind": "A String", # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT. "description": "A String", # The description of this run, only applicable to on-demand backups. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup. Applies only to Second Generation instances. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, @@ -233,7 +233,7 @@

Method Details

insert(project, instance, body=None, x__xgafv=None) -
Creates a new backup run on demand. This method is applicable only to Second Generation instances.
+  
Creates a new backup run on demand.
 
 Args:
   project: string, Project ID of the project that contains the instance. (required)
@@ -244,11 +244,11 @@ 

Method Details

{ # A BackupRun resource. "backupKind": "A String", # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT. "description": "A String", # The description of this run, only applicable to on-demand backups. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup. Applies only to Second Generation instances. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, @@ -371,11 +371,11 @@

Method Details

{ # A BackupRun resource. "backupKind": "A String", # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT. "description": "A String", # The description of this run, only applicable to on-demand backups. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup. Applies only to Second Generation instances. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Encryption configuration specific to a backup. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Encryption status specific to a backup. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, diff --git a/docs/dyn/sqladmin_v1beta4.flags.html b/docs/dyn/sqladmin_v1beta4.flags.html index 1cee3b79104..61b3099580f 100644 --- a/docs/dyn/sqladmin_v1beta4.flags.html +++ b/docs/dyn/sqladmin_v1beta4.flags.html @@ -79,7 +79,7 @@

Instance Methods

Close httplib2 connections.

list(databaseVersion=None, x__xgafv=None)

-

List all available database flags for Cloud SQL instances.

+

Lists all available database flags for Cloud SQL instances.

Method Details

close() @@ -88,7 +88,7 @@

Method Details

list(databaseVersion=None, x__xgafv=None) -
List all available database flags for Cloud SQL instances.
+  
Lists all available database flags for Cloud SQL instances.
 
 Args:
   databaseVersion: string, Database type and version you want to retrieve flags for. By default, this method returns flags for all database types and versions.
@@ -117,7 +117,7 @@ 

Method Details

"maxValue": "A String", # For *INTEGER* flags, the maximum allowed value. "minValue": "A String", # For *INTEGER* flags, the minimum allowed value. "name": "A String", # This is the name of the flag. Flag names always use underscores, not hyphens, for example: *max_allowed_packet* - "requiresRestart": True or False, # Indicates whether changing this flag will trigger a database restart. Only applicable to Second Generation instances. + "requiresRestart": True or False, # Indicates whether changing this flag will trigger a database restart. "type": "A String", # The type of the flag. Flags are typed to being *BOOLEAN*, *STRING*, *INTEGER* or *NONE*. *NONE* is used for flags which do not take a value, such as *skip_grant_tables*. }, ], diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html index 051036d52a0..24802a6b82a 100644 --- a/docs/dyn/sqladmin_v1beta4.instances.html +++ b/docs/dyn/sqladmin_v1beta4.instances.html @@ -94,7 +94,7 @@

Instance Methods

Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL dump or CSV file.

failover(project, instance, body=None, x__xgafv=None)

-

Failover the instance to its failover replica instance. Using this operation might cause your instance to restart.

+

Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the Overview of high availability page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.

get(project, instance, x__xgafv=None)

Retrieves a resource containing information about a Cloud SQL instance.

@@ -449,7 +449,7 @@

Method Details

"username": "A String", # The username for the replication connection. }, }, - "verifyGtidConsistency": True or False, # Verify GTID consistency for demote operation. Default value: *True*. Second Generation instances only. Setting this flag to false enables you to bypass GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues. + "verifyGtidConsistency": True or False, # Verify GTID consistency for demote operation. Default value: *True*. Setting this flag to false enables you to bypass GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues. }, } @@ -647,7 +647,7 @@

Method Details

failover(project, instance, body=None, x__xgafv=None) -
Failover the instance to its failover replica instance. Using this operation might cause your instance to restart.
+  
Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the Overview of high availability page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.
 
 Args:
   project: string, ID of the project that contains the read replica. (required)
@@ -760,19 +760,19 @@ 

Method Details

"backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. + "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. + "failoverReplica": { # The name and status of the failover replica. "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. + "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. }, "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. @@ -876,7 +876,7 @@

Method Details

"dataDiskType": "A String", # The type of data disk: PD_SSD (default) or PD_HDD. Not used for First Generation instances. "databaseFlags": [ # The database flags passed to the instance at startup. { # Database flags for Cloud SQL instances. - "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. + "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. "value": "A String", # The value of the flag. Booleans are set to *on* for true and *off* for false. This field must be omitted if the flag doesn't take a value. }, ], @@ -890,12 +890,12 @@

Method Details

], "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres. "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled. - "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database. + "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled. "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled. }, - "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. + "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: *192.168.100.0/24*). { # An entry for an Access Control list. "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*. @@ -1063,19 +1063,19 @@

Method Details

"backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. + "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. + "failoverReplica": { # The name and status of the failover replica. "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. + "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. }, "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. @@ -1179,7 +1179,7 @@

Method Details

"dataDiskType": "A String", # The type of data disk: PD_SSD (default) or PD_HDD. Not used for First Generation instances. "databaseFlags": [ # The database flags passed to the instance at startup. { # Database flags for Cloud SQL instances. - "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. + "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. "value": "A String", # The value of the flag. Booleans are set to *on* for true and *off* for false. This field must be omitted if the flag doesn't take a value. }, ], @@ -1193,12 +1193,12 @@

Method Details

], "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres. "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled. - "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database. + "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled. "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled. }, - "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. + "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: *192.168.100.0/24*). { # An entry for an Access Control list. "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*. @@ -1342,19 +1342,19 @@

Method Details

"backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. + "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. + "failoverReplica": { # The name and status of the failover replica. "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. + "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. }, "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. @@ -1458,7 +1458,7 @@

Method Details

"dataDiskType": "A String", # The type of data disk: PD_SSD (default) or PD_HDD. Not used for First Generation instances. "databaseFlags": [ # The database flags passed to the instance at startup. { # Database flags for Cloud SQL instances. - "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. + "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. "value": "A String", # The value of the flag. Booleans are set to *on* for true and *off* for false. This field must be omitted if the flag doesn't take a value. }, ], @@ -1472,12 +1472,12 @@

Method Details

], "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres. "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled. - "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database. + "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled. "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled. }, - "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. + "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: *192.168.100.0/24*). { # An entry for an Access Control list. "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*. @@ -1593,19 +1593,19 @@

Method Details

"backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. + "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. + "failoverReplica": { # The name and status of the failover replica. "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. + "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. }, "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. @@ -1709,7 +1709,7 @@

Method Details

"dataDiskType": "A String", # The type of data disk: PD_SSD (default) or PD_HDD. Not used for First Generation instances. "databaseFlags": [ # The database flags passed to the instance at startup. { # Database flags for Cloud SQL instances. - "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. + "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. "value": "A String", # The value of the flag. Booleans are set to *on* for true and *off* for false. This field must be omitted if the flag doesn't take a value. }, ], @@ -1723,12 +1723,12 @@

Method Details

], "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres. "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled. - "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database. + "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled. "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled. }, - "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. + "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: *192.168.100.0/24*). { # An entry for an Access Control list. "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*. @@ -2583,19 +2583,19 @@

Method Details

"backendType": "A String", # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type. "connectionName": "A String", # Connection name of the Cloud SQL instance used in connection strings. "currentDiskSize": "A String", # The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see this announcement for details. - "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. - "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances. + "databaseVersion": "A String", # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*. + "diskEncryptionConfiguration": { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionConfiguration*. "kmsKeyName": "A String", # Resource name of KMS key for disk encryption }, - "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances. + "diskEncryptionStatus": { # Disk encryption status for an instance. # Disk encryption status specific to an instance. "kind": "A String", # This is always *sql#diskEncryptionStatus*. "kmsKeyVersionName": "A String", # KMS key version used to encrypt the Cloud SQL instance resource }, "etag": "A String", # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead. - "failoverReplica": { # The name and status of the failover replica. This property is applicable only to Second Generation instances. + "failoverReplica": { # The name and status of the failover replica. "available": True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true. - "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances. + "name": "A String", # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. }, "gceZone": "A String", # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. "instanceType": "A String", # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica. @@ -2699,7 +2699,7 @@

Method Details

"dataDiskType": "A String", # The type of data disk: PD_SSD (default) or PD_HDD. Not used for First Generation instances. "databaseFlags": [ # The database flags passed to the instance at startup. { # Database flags for Cloud SQL instances. - "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. + "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation. "value": "A String", # The value of the flag. Booleans are set to *on* for true and *off* for false. This field must be omitted if the flag doesn't take a value. }, ], @@ -2713,12 +2713,12 @@

Method Details

], "insightsConfig": { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres. "queryInsightsEnabled": True or False, # Whether Query Insights feature is enabled. - "queryPlansPerMinute": 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database. + "queryPlansPerMinute": 42, # Number of query execution plans captured by Insights per minute for all queries combined. Default is 5. "queryStringLength": 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database. "recordApplicationTags": True or False, # Whether Query Insights will record application tags from query when enabled. "recordClientAddress": True or False, # Whether Query Insights will record client address when enabled. }, - "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances. + "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled. "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In 'CIDR' notation, also known as 'slash' notation (for example: *192.168.100.0/24*). { # An entry for an Access Control list. "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*. diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html index 3b559847da4..89c8964b21c 100644 --- a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html +++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html @@ -216,6 +216,9 @@

Method Details

requestMethod - clientName - queryString - + serverPageLocationUrl - + serverPageLocationPath - + serverPageLocationHostname - x__xgafv: string, V1 error format. Allowed values 1 - v1 error format @@ -356,6 +359,9 @@

Method Details

requestMethod - clientName - queryString - + serverPageLocationUrl - + serverPageLocationPath - + serverPageLocationHostname - x__xgafv: string, V1 error format. Allowed values 1 - v1 error format @@ -525,6 +531,9 @@

Method Details

requestMethod - clientName - queryString - + serverPageLocationUrl - + serverPageLocationPath - + serverPageLocationHostname - x__xgafv: string, V1 error format. Allowed values 1 - v1 error format diff --git a/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json b/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json index 9b09e975243..1b46f4d93de 100644 --- a/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json +++ b/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json @@ -115,7 +115,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", "schemas": { "AmpUrl": { diff --git a/googleapiclient/discovery_cache/documents/accessapproval.v1.json b/googleapiclient/discovery_cache/documents/accessapproval.v1.json index 65928deb987..cc749dca196 100644 --- a/googleapiclient/discovery_cache/documents/accessapproval.v1.json +++ b/googleapiclient/discovery_cache/documents/accessapproval.v1.json @@ -754,7 +754,7 @@ } } }, - "revision": "20210716", + "revision": "20210723", "rootUrl": "https://accessapproval.googleapis.com/", "schemas": { "AccessApprovalSettings": { diff --git a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json index 868d757c52f..2f5e1a9f11b 100644 --- a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json +++ b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json @@ -943,7 +943,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://accesscontextmanager.googleapis.com/", "schemas": { "AccessLevel": { diff --git a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json index e61f387bbd4..4d4ccf28855 100644 --- a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json +++ b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json @@ -609,7 +609,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://accesscontextmanager.googleapis.com/", "schemas": { "AccessLevel": { diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json index a215adbdb88..347dc5ebb6d 100644 --- a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json +++ b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json @@ -15,7 +15,7 @@ "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/A249TVo6dLDeSznlWT_vaeYMs4g\"", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/X0Fc7JxXDQWMuYY6RaDO4JgT_o8\"", "icons": { "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" @@ -259,7 +259,7 @@ } } }, - "revision": "20210718", + "revision": "20210725", "rootUrl": "https://www.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json index 6845e14f5be..3d3f22557ab 100644 --- a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json +++ b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json @@ -15,7 +15,7 @@ "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/jQTaS6wwiyLdmkV3tYdckgCPAj0\"", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/_cIH3d5t3MiKPg5aWuy50XtXXb0\"", "icons": { "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" @@ -699,7 +699,7 @@ } } }, - "revision": "20210718", + "revision": "20210725", "rootUrl": "https://www.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json index 68d096a69ef..8d1c4d643ff 100644 --- a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json +++ b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json @@ -15,7 +15,7 @@ "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/UGDXmK_qyasemPEfhFzt6WKQovg\"", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/1dlKfDUB7WMEncYh7eNZDmXqECk\"", "icons": { "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" @@ -1255,7 +1255,7 @@ } } }, - "revision": "20210718", + "revision": "20210725", "rootUrl": "https://www.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer2.v2beta1.json b/googleapiclient/discovery_cache/documents/adexchangebuyer2.v2beta1.json index 37ffb3ff482..8c0446eb23c 100644 --- a/googleapiclient/discovery_cache/documents/adexchangebuyer2.v2beta1.json +++ b/googleapiclient/discovery_cache/documents/adexchangebuyer2.v2beta1.json @@ -2568,7 +2568,7 @@ } } }, - "revision": "20210717", + "revision": "20210724", "rootUrl": "https://adexchangebuyer.googleapis.com/", "schemas": { "AbsoluteDateRange": { diff --git a/googleapiclient/discovery_cache/documents/admin.datatransfer_v1.json b/googleapiclient/discovery_cache/documents/admin.datatransfer_v1.json index 633b4afe4f3..7ba8979b12c 100644 --- a/googleapiclient/discovery_cache/documents/admin.datatransfer_v1.json +++ b/googleapiclient/discovery_cache/documents/admin.datatransfer_v1.json @@ -17,7 +17,7 @@ "canonicalName": "DataTransfer", "description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.", "discoveryVersion": "v1", - "documentationLink": "http://developers.google.com/admin-sdk/", + "documentationLink": "https://developers.google.com/admin-sdk/", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -272,7 +272,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Application": { diff --git a/googleapiclient/discovery_cache/documents/admin.directory_v1.json b/googleapiclient/discovery_cache/documents/admin.directory_v1.json index 6fde75ee6de..40c3c2280f1 100644 --- a/googleapiclient/discovery_cache/documents/admin.directory_v1.json +++ b/googleapiclient/discovery_cache/documents/admin.directory_v1.json @@ -98,7 +98,7 @@ "canonicalName": "directory", "description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.", "discoveryVersion": "v1", - "documentationLink": "http://developers.google.com/admin-sdk/", + "documentationLink": "https://developers.google.com/admin-sdk/", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -193,7 +193,7 @@ "asps": { "methods": { "delete": { - "description": "Delete an ASP issued by a user.", + "description": "Deletes an ASP issued by a user.", "flatPath": "admin/directory/v1/users/{userKey}/asps/{codeId}", "httpMethod": "DELETE", "id": "directory.asps.delete", @@ -222,7 +222,7 @@ ] }, "get": { - "description": "Get information about an ASP issued by a user.", + "description": "Gets information about an ASP issued by a user.", "flatPath": "admin/directory/v1/users/{userKey}/asps/{codeId}", "httpMethod": "GET", "id": "directory.asps.get", @@ -254,7 +254,7 @@ ] }, "list": { - "description": "List the ASPs issued by a user.", + "description": "Lists the ASPs issued by a user.", "flatPath": "admin/directory/v1/users/{userKey}/asps", "httpMethod": "GET", "id": "directory.asps.list", @@ -282,7 +282,7 @@ "channels": { "methods": { "stop": { - "description": "Stop watching resources through this channel.", + "description": "Stops watching resources through this channel.", "flatPath": "admin/directory_v1/channels/stop", "httpMethod": "POST", "id": "admin.channels.stop", @@ -478,7 +478,7 @@ ] }, "moveDevicesToOu": { - "description": "Move or insert multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.", + "description": "Moves or inserts multiple Chrome OS devices to an organizational unit. You can move up to 50 devices at once.", "flatPath": "admin/directory/v1/customer/{customerId}/devices/chromeos/moveDevicesToOu", "httpMethod": "POST", "id": "directory.chromeosdevices.moveDevicesToOu", @@ -724,7 +724,7 @@ ] }, "patch": { - "description": "Patch Customers via Apiary Patch Orchestration", + "description": "Patches a customer.", "flatPath": "admin/directory/v1/customers/{customerKey}", "httpMethod": "PATCH", "id": "directory.customers.patch", @@ -1357,7 +1357,7 @@ ] }, "list": { - "description": "Retrieve all groups of a domain or of a user given a userKey (paginated)", + "description": "Retrieves all groups of a domain or of a user given a userKey (paginated).", "flatPath": "admin/directory/v1/groups", "httpMethod": "GET", "id": "directory.groups.list", @@ -2409,7 +2409,7 @@ ] }, "patch": { - "description": "Patches a building via Apiary Patch Orchestration.", + "description": "Patches a building.", "flatPath": "admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}", "httpMethod": "PATCH", "id": "directory.resources.buildings.patch", @@ -2648,7 +2648,7 @@ ] }, "patch": { - "description": "Patches a calendar resource via Apiary Patch Orchestration.", + "description": "Patches a calendar resource.", "flatPath": "admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}", "httpMethod": "PATCH", "id": "directory.resources.calendars.patch", @@ -2845,7 +2845,7 @@ ] }, "patch": { - "description": "Patches a feature via Apiary Patch Orchestration.", + "description": "Patches a feature.", "flatPath": "admin/directory/v1/customer/{customer}/resources/features/{featureKey}", "httpMethod": "PATCH", "id": "directory.resources.features.patch", @@ -2978,7 +2978,7 @@ ] }, "get": { - "description": "Retrieve a role assignment.", + "description": "Retrieves a role assignment.", "flatPath": "admin/directory/v1/customer/{customer}/roleassignments/{roleAssignmentId}", "httpMethod": "GET", "id": "directory.roleAssignments.get", @@ -3214,7 +3214,7 @@ ] }, "patch": { - "description": "Patch role via Apiary Patch Orchestration", + "description": "Patches a role.", "flatPath": "admin/directory/v1/customer/{customer}/roles/{roleId}", "httpMethod": "PATCH", "id": "directory.roles.patch", @@ -3286,7 +3286,7 @@ "schemas": { "methods": { "delete": { - "description": "Delete schema", + "description": "Deletes a schema.", "flatPath": "admin/directory/v1/customer/{customerId}/schemas/{schemaKey}", "httpMethod": "DELETE", "id": "directory.schemas.delete", @@ -3314,7 +3314,7 @@ ] }, "get": { - "description": "Retrieve schema", + "description": "Retrieves a schema.", "flatPath": "admin/directory/v1/customer/{customerId}/schemas/{schemaKey}", "httpMethod": "GET", "id": "directory.schemas.get", @@ -3346,7 +3346,7 @@ ] }, "insert": { - "description": "Create schema.", + "description": "Creates a schema.", "flatPath": "admin/directory/v1/customer/{customerId}/schemas", "httpMethod": "POST", "id": "directory.schemas.insert", @@ -3373,7 +3373,7 @@ ] }, "list": { - "description": "Retrieve all schemas for a customer", + "description": "Retrieves all schemas for a customer.", "flatPath": "admin/directory/v1/customer/{customerId}/schemas", "httpMethod": "GET", "id": "directory.schemas.list", @@ -3398,7 +3398,7 @@ ] }, "patch": { - "description": "Patch Schema via Apiary Patch Orchestration", + "description": "Patches a schema.", "flatPath": "admin/directory/v1/customer/{customerId}/schemas/{schemaKey}", "httpMethod": "PATCH", "id": "directory.schemas.patch", @@ -3432,7 +3432,7 @@ ] }, "update": { - "description": "Update schema", + "description": "Updates a schema.", "flatPath": "admin/directory/v1/customer/{customerId}/schemas/{schemaKey}", "httpMethod": "PUT", "id": "directory.schemas.update", @@ -3470,7 +3470,7 @@ "tokens": { "methods": { "delete": { - "description": "Delete all access tokens issued by a user for an application.", + "description": "Deletes all access tokens issued by a user for an application.", "flatPath": "admin/directory/v1/users/{userKey}/tokens/{clientId}", "httpMethod": "DELETE", "id": "directory.tokens.delete", @@ -3498,7 +3498,7 @@ ] }, "get": { - "description": "Get information about an access token issued by a user.", + "description": "Gets information about an access token issued by a user.", "flatPath": "admin/directory/v1/users/{userKey}/tokens/{clientId}", "httpMethod": "GET", "id": "directory.tokens.get", @@ -3557,7 +3557,7 @@ "twoStepVerification": { "methods": { "turnOff": { - "description": "Turn off 2-Step Verification for user.", + "description": "Turns off 2-Step Verification for user.", "flatPath": "admin/directory/v1/users/{userKey}/twoStepVerification/turnOff", "httpMethod": "POST", "id": "directory.twoStepVerification.turnOff", @@ -3866,7 +3866,7 @@ ] }, "signOut": { - "description": "Sign a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again.", + "description": "Signs a user out of all web and device sessions and reset their sign-in cookies. User will have to sign in by authenticating again.", "flatPath": "admin/directory/v1/users/{userKey}/signOut", "httpMethod": "POST", "id": "directory.users.signOut", @@ -3938,7 +3938,7 @@ ] }, "watch": { - "description": "Watch for changes in users list", + "description": "Watches for changes in users list.", "flatPath": "admin/directory/v1/users/watch", "httpMethod": "POST", "id": "directory.users.watch", @@ -4176,7 +4176,7 @@ ] }, "watch": { - "description": "Watch for changes in users list.", + "description": "Watches for changes in users list.", "flatPath": "admin/directory/v1/users/{userKey}/aliases/watch", "httpMethod": "POST", "id": "directory.users.aliases.watch", @@ -4329,7 +4329,7 @@ "verificationCodes": { "methods": { "generate": { - "description": "Generate new backup verification codes for the user.", + "description": "Generates new backup verification codes for the user.", "flatPath": "admin/directory/v1/users/{userKey}/verificationCodes/generate", "httpMethod": "POST", "id": "directory.verificationCodes.generate", @@ -4350,7 +4350,7 @@ ] }, "invalidate": { - "description": "Invalidate the current backup verification codes for the user.", + "description": "Invalidates the current backup verification codes for the user.", "flatPath": "admin/directory/v1/users/{userKey}/verificationCodes/invalidate", "httpMethod": "POST", "id": "directory.verificationCodes.invalidate", @@ -4397,7 +4397,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Alias": { diff --git a/googleapiclient/discovery_cache/documents/admin.reports_v1.json b/googleapiclient/discovery_cache/documents/admin.reports_v1.json index 967d0f3ece1..3e72367bfe0 100644 --- a/googleapiclient/discovery_cache/documents/admin.reports_v1.json +++ b/googleapiclient/discovery_cache/documents/admin.reports_v1.json @@ -17,7 +17,7 @@ "canonicalName": "reports", "description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.", "discoveryVersion": "v1", - "documentationLink": "http://developers.google.com/admin-sdk/", + "documentationLink": "https://developers.google.com/admin-sdk/", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -631,7 +631,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Activities": { diff --git a/googleapiclient/discovery_cache/documents/admob.v1.json b/googleapiclient/discovery_cache/documents/admob.v1.json index 4fb306eeab5..e8939902ef3 100644 --- a/googleapiclient/discovery_cache/documents/admob.v1.json +++ b/googleapiclient/discovery_cache/documents/admob.v1.json @@ -321,7 +321,7 @@ } } }, - "revision": "20210718", + "revision": "20210724", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdUnit": { diff --git a/googleapiclient/discovery_cache/documents/admob.v1beta.json b/googleapiclient/discovery_cache/documents/admob.v1beta.json index b383795ea51..8e12aedb2c7 100644 --- a/googleapiclient/discovery_cache/documents/admob.v1beta.json +++ b/googleapiclient/discovery_cache/documents/admob.v1beta.json @@ -321,7 +321,7 @@ } } }, - "revision": "20210718", + "revision": "20210724", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdUnit": { diff --git a/googleapiclient/discovery_cache/documents/adsense.v2.json b/googleapiclient/discovery_cache/documents/adsense.v2.json index 66e630345a9..67e7d8622d7 100644 --- a/googleapiclient/discovery_cache/documents/adsense.v2.json +++ b/googleapiclient/discovery_cache/documents/adsense.v2.json @@ -1567,7 +1567,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://adsense.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/alertcenter.v1beta1.json b/googleapiclient/discovery_cache/documents/alertcenter.v1beta1.json index 76c5d47839d..bf9262f15fc 100644 --- a/googleapiclient/discovery_cache/documents/alertcenter.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/alertcenter.v1beta1.json @@ -423,7 +423,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://alertcenter.googleapis.com/", "schemas": { "AccountWarning": { @@ -688,6 +688,50 @@ }, "type": "object" }, + "AppsOutage": { + "description": "An outage incident reported by Google for a Google Workspace (formerly G Suite) application.", + "id": "AppsOutage", + "properties": { + "dashboardUri": { + "description": "Link to the outage event in Google Workspace Status Dashboard", + "type": "string" + }, + "nextUpdateTime": { + "description": "Timestamp by which the next update shall be provided.", + "format": "google-datetime", + "type": "string" + }, + "products": { + "description": "List of products impacted by the outage.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resolutionTime": { + "description": "Timestamp of the outage expected or confirmed resolution. (Used only when known).", + "format": "google-datetime", + "type": "string" + }, + "status": { + "description": "Current outage status.", + "enum": [ + "STATUS_UNSPECIFIED", + "NEW", + "ONGOING", + "RESOLVED" + ], + "enumDescriptions": [ + "Status is unspecified.", + "The incident has just been reported.", + "The incidnet is ongoing.", + "The incident has been resolved." + ], + "type": "string" + } + }, + "type": "object" + }, "Attachment": { "description": "Attachment with application-specific information about an alert.", "id": "Attachment", @@ -1163,30 +1207,6 @@ }, "type": "object" }, - "OutOfDomainForwarding": { - "description": "An alert that gets triggered when a user enables autoforwarding to an email which is outside of its domain", - "id": "OutOfDomainForwarding", - "properties": { - "actorEmail": { - "description": "Email of the actor who triggered the alert.", - "type": "string" - }, - "enableTime": { - "description": "The time the email forwarding was enabled", - "format": "google-datetime", - "type": "string" - }, - "forwardeeEmail": { - "description": "Email to which emails are being forwarded", - "type": "string" - }, - "ipAddress": { - "description": "IP address of the user while enabling forwarding", - "type": "string" - } - }, - "type": "object" - }, "PhishingSpike": { "description": "Alert for a spike in user reported phishing. *Warning*: This type has been deprecated. Use [MailPhishing](/admin-sdk/alertcenter/reference/rest/v1beta1/MailPhishing) instead.", "id": "PhishingSpike", diff --git a/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json b/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json index 68c811feaad..8e53f74a174 100644 --- a/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json @@ -3092,7 +3092,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://analyticsadmin.googleapis.com/", "schemas": { "GoogleAnalyticsAdminV1alphaAccount": { @@ -3632,7 +3632,7 @@ "type": "string" }, "measurementUnit": { - "description": "Required. Immutable. The type for the custom metric's value.", + "description": "Required. The type for the custom metric's value.", "enum": [ "MEASUREMENT_UNIT_UNSPECIFIED", "STANDARD", diff --git a/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json b/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json index 6497d113363..87701dd65aa 100644 --- a/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json +++ b/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json @@ -284,7 +284,7 @@ } } }, - "revision": "20210715", + "revision": "20210723", "rootUrl": "https://analyticsdata.googleapis.com/", "schemas": { "BatchRunPivotReportsRequest": { diff --git a/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json b/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json index 4c6f56e975e..6a88213f7ea 100644 --- a/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json +++ b/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json @@ -825,7 +825,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://androiddeviceprovisioning.googleapis.com/", "schemas": { "ClaimDeviceRequest": { diff --git a/googleapiclient/discovery_cache/documents/androidenterprise.v1.json b/googleapiclient/discovery_cache/documents/androidenterprise.v1.json index 64e380762cd..aa773c06f46 100644 --- a/googleapiclient/discovery_cache/documents/androidenterprise.v1.json +++ b/googleapiclient/discovery_cache/documents/androidenterprise.v1.json @@ -2610,7 +2610,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://androidenterprise.googleapis.com/", "schemas": { "Administrator": { diff --git a/googleapiclient/discovery_cache/documents/androidpublisher.v3.json b/googleapiclient/discovery_cache/documents/androidpublisher.v3.json index 62f5149b739..6430c34e161 100644 --- a/googleapiclient/discovery_cache/documents/androidpublisher.v3.json +++ b/googleapiclient/discovery_cache/documents/androidpublisher.v3.json @@ -439,7 +439,7 @@ ], "parameters": { "ackBundleInstallationWarning": { - "description": "Must be set to true if the bundle installation may trigger a warning on user devices (for example, if installation size may be over a threshold, typically 100 MB).", + "description": "Must be set to true if the app bundle installation may trigger a warning on user devices (for example, if installation size may be over a threshold, typically 100 MB).", "location": "query", "type": "boolean" }, @@ -2676,7 +2676,7 @@ } } }, - "revision": "20210701", + "revision": "20210724", "rootUrl": "https://androidpublisher.googleapis.com/", "schemas": { "Apk": { @@ -2791,7 +2791,7 @@ "type": "object" }, "Bundle": { - "description": "Information about a bundle. The resource for BundlesService.", + "description": "Information about an app bundle. The resource for BundlesService.", "id": "Bundle", "properties": { "sha1": { @@ -2811,11 +2811,11 @@ "type": "object" }, "BundlesListResponse": { - "description": "Response listing all bundles.", + "description": "Response listing all app bundles.", "id": "BundlesListResponse", "properties": { "bundles": { - "description": "All bundles.", + "description": "All app bundles.", "items": { "$ref": "Bundle" }, diff --git a/googleapiclient/discovery_cache/documents/apigateway.v1.json b/googleapiclient/discovery_cache/documents/apigateway.v1.json index fa6ba41ae3e..a7e83865d93 100644 --- a/googleapiclient/discovery_cache/documents/apigateway.v1.json +++ b/googleapiclient/discovery_cache/documents/apigateway.v1.json @@ -1083,7 +1083,7 @@ } } }, - "revision": "20210707", + "revision": "20210714", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { diff --git a/googleapiclient/discovery_cache/documents/apigateway.v1beta.json b/googleapiclient/discovery_cache/documents/apigateway.v1beta.json index 7f31b955d9c..a19a7c03f7d 100644 --- a/googleapiclient/discovery_cache/documents/apigateway.v1beta.json +++ b/googleapiclient/discovery_cache/documents/apigateway.v1beta.json @@ -1083,7 +1083,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { diff --git a/googleapiclient/discovery_cache/documents/apigee.v1.json b/googleapiclient/discovery_cache/documents/apigee.v1.json index 4a6a9922573..53ccfecb56c 100644 --- a/googleapiclient/discovery_cache/documents/apigee.v1.json +++ b/googleapiclient/discovery_cache/documents/apigee.v1.json @@ -7011,7 +7011,7 @@ } } }, - "revision": "20210708", + "revision": "20210719", "rootUrl": "https://apigee.googleapis.com/", "schemas": { "GoogleApiHttpBody": { diff --git a/googleapiclient/discovery_cache/documents/apikeys.v2.json b/googleapiclient/discovery_cache/documents/apikeys.v2.json index bb40ea8d658..8d8e4f9f498 100644 --- a/googleapiclient/discovery_cache/documents/apikeys.v2.json +++ b/googleapiclient/discovery_cache/documents/apikeys.v2.json @@ -424,7 +424,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://apikeys.googleapis.com/", "schemas": { "Operation": { diff --git a/googleapiclient/discovery_cache/documents/appengine.v1.json b/googleapiclient/discovery_cache/documents/appengine.v1.json index a3c78406d08..47591e4e737 100644 --- a/googleapiclient/discovery_cache/documents/appengine.v1.json +++ b/googleapiclient/discovery_cache/documents/appengine.v1.json @@ -1595,7 +1595,7 @@ } } }, - "revision": "20210712", + "revision": "20210715", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { diff --git a/googleapiclient/discovery_cache/documents/appengine.v1alpha.json b/googleapiclient/discovery_cache/documents/appengine.v1alpha.json index 6e773d62d9a..c513cd0cfc9 100644 --- a/googleapiclient/discovery_cache/documents/appengine.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/appengine.v1alpha.json @@ -709,7 +709,7 @@ } } }, - "revision": "20210712", + "revision": "20210715", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "AuthorizedCertificate": { diff --git a/googleapiclient/discovery_cache/documents/appengine.v1beta.json b/googleapiclient/discovery_cache/documents/appengine.v1beta.json index f863cb6f544..5a51e99de53 100644 --- a/googleapiclient/discovery_cache/documents/appengine.v1beta.json +++ b/googleapiclient/discovery_cache/documents/appengine.v1beta.json @@ -1595,7 +1595,7 @@ } } }, - "revision": "20210712", + "revision": "20210715", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { diff --git a/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json b/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json index a90a4a4b41c..800d20a792e 100644 --- a/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json @@ -586,7 +586,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://area120tables.googleapis.com/", "schemas": { "BatchCreateRowsRequest": { diff --git a/googleapiclient/discovery_cache/documents/artifactregistry.v1.json b/googleapiclient/discovery_cache/documents/artifactregistry.v1.json index d33ae7fd009..5535f54e4c9 100644 --- a/googleapiclient/discovery_cache/documents/artifactregistry.v1.json +++ b/googleapiclient/discovery_cache/documents/artifactregistry.v1.json @@ -348,7 +348,7 @@ } } }, - "revision": "20210629", + "revision": "20210713", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { diff --git a/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json b/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json index 551d57cbd04..dd50d788ca1 100644 --- a/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json @@ -971,7 +971,7 @@ } } }, - "revision": "20210629", + "revision": "20210713", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { diff --git a/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json b/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json index b1e655fb167..7d365ee39b3 100644 --- a/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json @@ -1035,7 +1035,7 @@ } } }, - "revision": "20210629", + "revision": "20210713", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { diff --git a/googleapiclient/discovery_cache/documents/bigquery.v2.json b/googleapiclient/discovery_cache/documents/bigquery.v2.json index fbf17643303..fc5d0631469 100644 --- a/googleapiclient/discovery_cache/documents/bigquery.v2.json +++ b/googleapiclient/discovery_cache/documents/bigquery.v2.json @@ -1683,7 +1683,7 @@ } } }, - "revision": "20210617", + "revision": "20210706", "rootUrl": "https://bigquery.googleapis.com/", "schemas": { "AggregateClassificationMetrics": { diff --git a/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json b/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json index 2480c6d02dc..7caa9e59e38 100644 --- a/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json @@ -395,7 +395,7 @@ } } }, - "revision": "20210617", + "revision": "20210706", "rootUrl": "https://bigqueryconnection.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/bigqueryreservation.v1.json b/googleapiclient/discovery_cache/documents/bigqueryreservation.v1.json index fd592c8baef..7f374e960fa 100644 --- a/googleapiclient/discovery_cache/documents/bigqueryreservation.v1.json +++ b/googleapiclient/discovery_cache/documents/bigqueryreservation.v1.json @@ -783,7 +783,7 @@ } } }, - "revision": "20210618", + "revision": "20210717", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { diff --git a/googleapiclient/discovery_cache/documents/bigqueryreservation.v1beta1.json b/googleapiclient/discovery_cache/documents/bigqueryreservation.v1beta1.json index 33710c55f1b..8b597332d18 100644 --- a/googleapiclient/discovery_cache/documents/bigqueryreservation.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/bigqueryreservation.v1beta1.json @@ -781,7 +781,7 @@ } } }, - "revision": "20210618", + "revision": "20210717", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { diff --git a/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json b/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json index bd78e85e510..898ad24c38a 100644 --- a/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json +++ b/googleapiclient/discovery_cache/documents/bigtableadmin.v1.json @@ -96,7 +96,7 @@ }, "protocol": "rest", "resources": {}, - "revision": "20210623", + "revision": "20210712", "rootUrl": "https://bigtableadmin.googleapis.com/", "schemas": { "Backup": { diff --git a/googleapiclient/discovery_cache/documents/bigtableadmin.v2.json b/googleapiclient/discovery_cache/documents/bigtableadmin.v2.json index 3fa2952fc04..d04354d6436 100644 --- a/googleapiclient/discovery_cache/documents/bigtableadmin.v2.json +++ b/googleapiclient/discovery_cache/documents/bigtableadmin.v2.json @@ -1803,7 +1803,7 @@ } } }, - "revision": "20210623", + "revision": "20210712", "rootUrl": "https://bigtableadmin.googleapis.com/", "schemas": { "AppProfile": { diff --git a/googleapiclient/discovery_cache/documents/billingbudgets.v1.json b/googleapiclient/discovery_cache/documents/billingbudgets.v1.json index b1e6458f39d..ddc9e20d5d9 100644 --- a/googleapiclient/discovery_cache/documents/billingbudgets.v1.json +++ b/googleapiclient/discovery_cache/documents/billingbudgets.v1.json @@ -270,7 +270,7 @@ } } }, - "revision": "20210703", + "revision": "20210720", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1Budget": { diff --git a/googleapiclient/discovery_cache/documents/billingbudgets.v1beta1.json b/googleapiclient/discovery_cache/documents/billingbudgets.v1beta1.json index f4e725a5ab1..7bcd96dbbd5 100644 --- a/googleapiclient/discovery_cache/documents/billingbudgets.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/billingbudgets.v1beta1.json @@ -264,7 +264,7 @@ } } }, - "revision": "20210703", + "revision": "20210720", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": { diff --git a/googleapiclient/discovery_cache/documents/binaryauthorization.v1.json b/googleapiclient/discovery_cache/documents/binaryauthorization.v1.json index 0b5c94c8800..b1f64fba9d9 100644 --- a/googleapiclient/discovery_cache/documents/binaryauthorization.v1.json +++ b/googleapiclient/discovery_cache/documents/binaryauthorization.v1.json @@ -551,7 +551,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { diff --git a/googleapiclient/discovery_cache/documents/binaryauthorization.v1beta1.json b/googleapiclient/discovery_cache/documents/binaryauthorization.v1beta1.json index 84082d57e02..5569f931fb3 100644 --- a/googleapiclient/discovery_cache/documents/binaryauthorization.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/binaryauthorization.v1beta1.json @@ -551,7 +551,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { diff --git a/googleapiclient/discovery_cache/documents/blogger.v2.json b/googleapiclient/discovery_cache/documents/blogger.v2.json index 08c17ebe988..951695393f4 100644 --- a/googleapiclient/discovery_cache/documents/blogger.v2.json +++ b/googleapiclient/discovery_cache/documents/blogger.v2.json @@ -401,7 +401,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { diff --git a/googleapiclient/discovery_cache/documents/blogger.v3.json b/googleapiclient/discovery_cache/documents/blogger.v3.json index 3b0ccfc72d1..9fc4f53765b 100644 --- a/googleapiclient/discovery_cache/documents/blogger.v3.json +++ b/googleapiclient/discovery_cache/documents/blogger.v3.json @@ -1678,7 +1678,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { diff --git a/googleapiclient/discovery_cache/documents/books.v1.json b/googleapiclient/discovery_cache/documents/books.v1.json index a0752e524c2..72024b25715 100644 --- a/googleapiclient/discovery_cache/documents/books.v1.json +++ b/googleapiclient/discovery_cache/documents/books.v1.json @@ -2671,7 +2671,7 @@ } } }, - "revision": "20210709", + "revision": "20210721", "rootUrl": "https://books.googleapis.com/", "schemas": { "Annotation": { diff --git a/googleapiclient/discovery_cache/documents/calendar.v3.json b/googleapiclient/discovery_cache/documents/calendar.v3.json index 6c142c8ef97..c21719b7137 100644 --- a/googleapiclient/discovery_cache/documents/calendar.v3.json +++ b/googleapiclient/discovery_cache/documents/calendar.v3.json @@ -1723,7 +1723,7 @@ } } }, - "revision": "20210714", + "revision": "20210718", "rootUrl": "https://www.googleapis.com/", "schemas": { "Acl": { diff --git a/googleapiclient/discovery_cache/documents/chat.v1.json b/googleapiclient/discovery_cache/documents/chat.v1.json index 3c8d04ca994..336fb8be35a 100644 --- a/googleapiclient/discovery_cache/documents/chat.v1.json +++ b/googleapiclient/discovery_cache/documents/chat.v1.json @@ -601,7 +601,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://chat.googleapis.com/", "schemas": { "ActionParameter": { @@ -623,6 +623,10 @@ "description": "Parameters that a bot can use to configure how it's response is posted.", "id": "ActionResponse", "properties": { + "dialogAction": { + "$ref": "DialogAction", + "description": "This response is for Dialog related events and must be accompanied by ResponseType.Dialog" + }, "type": { "description": "The type of bot response.", "enum": [ @@ -646,6 +650,59 @@ }, "type": "object" }, + "ActionStatus": { + "description": "ActionStatus represents status of a request from the bot developer's side. In specific, for each request a bot gets, the bot developer will set both fields below in relation to what the response status and message related to status should be.", + "id": "ActionStatus", + "properties": { + "statusCode": { + "description": "The status code.", + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "enumDescriptions": [ + "Not an error; returned on success HTTP Mapping: 200 OK", + "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", + "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", + "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", + "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", + "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", + "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", + "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", + "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", + "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", + "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", + "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", + "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", + "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", + "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", + "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", + "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" + ], + "type": "string" + }, + "userFacingMessage": { + "description": "This message will be the corresponding string to the above status_code. If unset, an appropriate generic message based on the status_code will be shown to the user. If this field is set then the message will be surfaced to the user for both successes and errors.", + "type": "string" + } + }, + "type": "object" + }, "Annotation": { "description": "Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!\" ``` The corresponding annotations metadata: ``` \"annotations\":[{ \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7, \"userMention\": { \"user\": { \"name\":\"users/107946847022116401880\", \"displayName\":\"FooBot\", \"avatarUrl\":\"https://goo.gl/aeDtrS\", \"type\":\"BOT\" }, \"type\":\"MENTION\" } }] ```", "id": "Annotation", @@ -836,6 +893,33 @@ }, "type": "object" }, + "Color": { + "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", + "id": "Color", + "properties": { + "alpha": { + "description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", + "format": "float", + "type": "number" + }, + "blue": { + "description": "The amount of blue in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + }, + "green": { + "description": "The amount of green in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + }, + "red": { + "description": "The amount of red in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "DeprecatedEvent": { "description": "Google Chat events.", "id": "DeprecatedEvent", @@ -894,6 +978,32 @@ }, "type": "object" }, + "Dialog": { + "description": "Wrapper around the card body of the dialog.", + "id": "Dialog", + "properties": { + "body": { + "$ref": "GoogleAppsCardV1Card", + "description": "Body of the dialog, which will be rendered in a modal. NOTE: The following fields within the objects are not supported: google.apps.card.v1.Widget.date_time_picker google.apps.card.v1.DecoratedText.SwitchControl.on_change_action google.apps.card.v1.TextInput.on_change_action google.apps.card.v1.SelectionInput.on_change_action google.apps.card.v1.DateTimePicker.on_change_action Setting the fields above will have no effect on the dialog." + } + }, + "type": "object" + }, + "DialogAction": { + "description": "Contains dialog if present as well as the ActionStatus for the request sent from user.", + "id": "DialogAction", + "properties": { + "actionStatus": { + "$ref": "ActionStatus", + "description": "Status for either invoke dialog or submit dialog requests. This will be used to display a status and message to user if needed. For example in case of an error or success." + }, + "dialog": { + "$ref": "Dialog", + "description": "Dialog for the request." + } + }, + "type": "object" + }, "DriveDataRef": { "description": "A reference to the data of a drive attachment.", "id": "DriveDataRef", @@ -929,6 +1039,840 @@ }, "type": "object" }, + "GoogleAppsCardV1Action": { + "description": "An action that describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form.", + "id": "GoogleAppsCardV1Action", + "properties": { + "function": { + "description": "Apps Script function to invoke when the containing element is clicked/activated.", + "type": "string" + }, + "loadIndicator": { + "enum": [ + "SPINNER", + "NONE" + ], + "enumDescriptions": [ + "Displays a spinner to indicate that content is loading.", + "Nothing is displayed." + ], + "type": "string" + }, + "parameters": { + "description": "List of action parameters.", + "items": { + "$ref": "GoogleAppsCardV1ActionParameter" + }, + "type": "array" + }, + "persistValues": { + "description": "Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. When using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for actions, `persist_values` = `true`is recommended, as it ensures that any changes made by the user after form or on change actions are sent to the server are not overwritten by the response. If `false`, the form values are cleared when the action is triggered. When `persist_values` is set to `false`, it is strongly recommended that the card use [LoadIndicator.SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) for all actions, as this locks the UI to ensure no changes are made by the user while the action is being processed.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAppsCardV1ActionParameter": { + "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.", + "id": "GoogleAppsCardV1ActionParameter", + "properties": { + "key": { + "description": "The name of the parameter for the action script.", + "type": "string" + }, + "value": { + "description": "The value of the parameter.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1BorderStyle": { + "description": "Represents the complete border style applied to widgets.", + "id": "GoogleAppsCardV1BorderStyle", + "properties": { + "cornerRadius": { + "description": "The corner radius for the border.", + "format": "int32", + "type": "integer" + }, + "strokeColor": { + "$ref": "Color", + "description": "The colors to use when the type is `BORDER_TYPE_STROKE`." + }, + "type": { + "description": "The border type.", + "enum": [ + "BORDER_TYPE_UNSPECIFIED", + "NO_BORDER", + "STROKE" + ], + "enumDescriptions": [ + "No value specified.", + "No border.", + "Outline." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Button": { + "description": "A button. Can be a text button or an image button.", + "id": "GoogleAppsCardV1Button", + "properties": { + "altText": { + "description": "The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.", + "type": "string" + }, + "color": { + "$ref": "Color", + "description": "If set, the button is filled with a solid background." + }, + "disabled": { + "description": "If true, the button is displayed in a disabled state and doesn't respond to user actions.", + "type": "boolean" + }, + "icon": { + "$ref": "GoogleAppsCardV1Icon", + "description": "The icon image." + }, + "onClick": { + "$ref": "GoogleAppsCardV1OnClick", + "description": "The action to perform when the button is clicked." + }, + "text": { + "description": "The text of the button.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1ButtonList": { + "description": "A list of buttons layed out horizontally.", + "id": "GoogleAppsCardV1ButtonList", + "properties": { + "buttons": { + "items": { + "$ref": "GoogleAppsCardV1Button" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Card": { + "description": "A card is a UI element that can contain UI widgets such as text and images. For more information, see Cards . For example, the following JSON creates a card that has a header with the name, position, icons, and link for a contact, followed by a section with contact information like email and phone number. ``` { \"header\": { \"title\": \"Heba Salam\", \"subtitle\": \"Software Engineer\", \"imageStyle\": \"ImageStyle.AVATAR\", \"imageUrl\": \"https://example.com/heba_salam.png\", \"imageAltText\": \"Avatar for Heba Salam\" }, \"sections\" : [ { \"header\": \"Contact Info\", \"widgets\": [ { \"decorated_text\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"content\": \"heba.salam@example.com\" } }, { \"decoratedText\": { \"icon\": { \"knownIcon\": \"PERSON\" }, \"content\": \"Online\" } }, { \"decoratedText\": { \"icon\": { \"knownIcon\": \"PHONE\" }, \"content\": \"+1 (555) 555-1234\" } }, { \"buttons\": [ { \"textButton\": { \"text\": \"Share\", }, \"onClick\": { \"openLink\": { \"url\": \"https://example.com/share\" } } }, { \"textButton\": { \"text\": \"Edit\", }, \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } } ] } ], \"collapsible\": true, \"uncollapsibleWidgetsCount\": 3 } ], \"cardActions\": [ { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/feedback\" } } } ], \"name\": \"contact-card-K3wB6arF2H9L\" } ```", + "id": "GoogleAppsCardV1Card", + "properties": { + "cardActions": { + "description": "The actions of this card. They are added to a card's generated toolbar menu. For example, the following JSON constructs a card action menu with Settings and Send Feedback options: ``` \"card_actions\": [ { \"actionLabel\": \"Setting\", \"onClick\": { \"action\": { \"functionName\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"SETTING\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } }, { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/feedback\" } } } ] ```", + "items": { + "$ref": "GoogleAppsCardV1CardAction" + }, + "type": "array" + }, + "displayStyle": { + "description": "The display style for peekCardHeader.", + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "enumDescriptions": [ + "", + "The header of the card appears at the bottom of the sidebar, partially covering the current top card of the stack. Clicking the header pops the card into the card stack. If the card has no header, a generated header is used instead.", + "The card is shown by replacing the view of the top card in the card stack." + ], + "type": "string" + }, + "fixedFooter": { + "$ref": "GoogleAppsCardV1CardFixedFooter", + "description": "The fixed footer shown at the bottom of this card." + }, + "header": { + "$ref": "GoogleAppsCardV1CardHeader", + "description": "The header of the card. A header usually contains a title and an image." + }, + "name": { + "description": "Name of the card, which is used as a identifier for the card in card navigation.", + "type": "string" + }, + "peekCardHeader": { + "$ref": "GoogleAppsCardV1CardHeader", + "description": "When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards." + }, + "sections": { + "description": "Sections are separated by a line divider.", + "items": { + "$ref": "GoogleAppsCardV1Section" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAppsCardV1CardAction": { + "description": "A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser.", + "id": "GoogleAppsCardV1CardAction", + "properties": { + "actionLabel": { + "description": "The label that displays as the action menu item.", + "type": "string" + }, + "onClick": { + "$ref": "GoogleAppsCardV1OnClick", + "description": "The onclick action for this action item." + } + }, + "type": "object" + }, + "GoogleAppsCardV1CardFixedFooter": { + "description": "A persistent (sticky) footer that is added to the bottom of the card.", + "id": "GoogleAppsCardV1CardFixedFooter", + "properties": { + "primaryButton": { + "$ref": "GoogleAppsCardV1Button", + "description": "The primary button of the fixed footer. The button must be a text button with text and color set." + }, + "secondaryButton": { + "$ref": "GoogleAppsCardV1Button", + "description": "The secondary button of the fixed footer. The button must be a text button with text and color set. `primaryButton` must be set if `secondaryButton` is set." + } + }, + "type": "object" + }, + "GoogleAppsCardV1CardHeader": { + "id": "GoogleAppsCardV1CardHeader", + "properties": { + "imageAltText": { + "description": "The alternative text of this image which is used for accessibility.", + "type": "string" + }, + "imageType": { + "description": "The image's type.", + "enum": [ + "SQUARE", + "CIRCLE" + ], + "enumDescriptions": [ + "Applies no cropping to the image.", + "Applies a circular mask to the image." + ], + "type": "string" + }, + "imageUrl": { + "description": "The URL of the image in the card header.", + "type": "string" + }, + "subtitle": { + "description": "The subtitle of the card header.", + "type": "string" + }, + "title": { + "description": "The title of the card header. The title must be specified. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1DateTimePicker": { + "description": "The widget that lets users to specify a date and time.", + "id": "GoogleAppsCardV1DateTimePicker", + "properties": { + "label": { + "description": "The label for the field that displays to the user.", + "type": "string" + }, + "name": { + "description": "The name of the text input that's used in formInput, and uniquely identifies this input.", + "type": "string" + }, + "onChangeAction": { + "$ref": "GoogleAppsCardV1Action", + "description": "Triggered when the user clicks Save or Clear from the date/time picker dialog. This is only triggered if the value changed as a result of the Save/Clear operation." + }, + "timezoneOffsetDate": { + "description": "The number representing the time zone offset from UTC, in minutes. If set, the `value_ms_epoch` is displayed in the specified time zone. If not set, it uses the user's time zone setting on the client side.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The type of the date/time picker.", + "enum": [ + "DATE_AND_TIME", + "DATE_ONLY", + "TIME_ONLY" + ], + "enumDescriptions": [ + "The user can select a date and time.", + "The user can only select a date.", + "The user can only select a time." + ], + "type": "string" + }, + "valueMsEpoch": { + "description": "The value to display as the default value before user input or previous user input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. For `DATE_ONLY` type, only date of the epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used. For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1DecoratedText": { + "description": "A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget or a button after the text.", + "id": "GoogleAppsCardV1DecoratedText", + "properties": { + "bottomLabel": { + "description": "The formatted text label that shows below the main text.", + "type": "string" + }, + "button": { + "$ref": "GoogleAppsCardV1Button", + "description": "A button that can be clicked to trigger an action." + }, + "endIcon": { + "$ref": "GoogleAppsCardV1Icon", + "description": "An icon displayed after the text." + }, + "icon": { + "$ref": "GoogleAppsCardV1Icon", + "description": "Deprecated in favor of start_icon." + }, + "onClick": { + "$ref": "GoogleAppsCardV1OnClick", + "description": "Only the top and bottom label and content region are clickable." + }, + "startIcon": { + "$ref": "GoogleAppsCardV1Icon", + "description": "The icon displayed in front of the text." + }, + "switchControl": { + "$ref": "GoogleAppsCardV1SwitchControl", + "description": "A switch widget can be clicked to change its state or trigger an action." + }, + "text": { + "description": "Required. The main widget formatted text. See Text formatting for details.", + "type": "string" + }, + "topLabel": { + "description": "The formatted text label that shows above the main text.", + "type": "string" + }, + "wrapText": { + "description": "The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Divider": { + "description": "A divider that appears in between widgets.", + "id": "GoogleAppsCardV1Divider", + "properties": {}, + "type": "object" + }, + "GoogleAppsCardV1Grid": { + "description": "Represents a Grid widget that displays items in a configurable grid layout.", + "id": "GoogleAppsCardV1Grid", + "properties": { + "borderStyle": { + "$ref": "GoogleAppsCardV1BorderStyle", + "description": "The border style to apply to each grid item." + }, + "columnCount": { + "description": "The number of columns to display in the grid. A default value is used if this field isn't specified, and that default value is different depending on where the grid is shown (dialog versus companion).", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "The items to display in the grid.", + "items": { + "$ref": "GoogleAppsCardV1GridItem" + }, + "type": "array" + }, + "onClick": { + "$ref": "GoogleAppsCardV1OnClick", + "description": "This callback is reused by each individual grid item, but with the item's identifier and index in the items list added to the callback's parameters." + }, + "title": { + "description": "The text that displays in the grid header.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1GridItem": { + "description": "Represents a single item in the grid layout.", + "id": "GoogleAppsCardV1GridItem", + "properties": { + "id": { + "description": "A user-specified identifier for this grid item. This identifier is returned in the parent Grid's onClick callback parameters.", + "type": "string" + }, + "image": { + "$ref": "GoogleAppsCardV1ImageComponent", + "description": "The image that displays in the grid item." + }, + "layout": { + "description": "The layout to use for the grid item.", + "enum": [ + "GRID_ITEM_LAYOUT_UNSPECIFIED", + "TEXT_BELOW", + "TEXT_ABOVE" + ], + "enumDescriptions": [ + "No layout specified.", + "The title and subtitle are shown below the grid item's image.", + "The title and subtitle are shown above the grid item's image." + ], + "type": "string" + }, + "subtitle": { + "description": "The grid item's subtitle.", + "type": "string" + }, + "textAlignment": { + "description": "The horizontal alignment of the grid item's text.", + "enum": [ + "HORIZONTAL_ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END" + ], + "enumDescriptions": [ + "Unspecified alignment.", + "Alignment to the start position.", + "Alignment to the center position.", + "Alignment to the end position." + ], + "type": "string" + }, + "title": { + "description": "The grid item's title.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Icon": { + "id": "GoogleAppsCardV1Icon", + "properties": { + "altText": { + "description": "The description of the icon, used for accessibility. The default value is provided if you don't specify one.", + "type": "string" + }, + "iconUrl": { + "description": "The icon specified by a URL.", + "type": "string" + }, + "imageType": { + "description": "The crop style applied to the image. In some cases, applying a `CIRCLE` crop causes the image to be drawn larger than a standard icon.", + "enum": [ + "SQUARE", + "CIRCLE" + ], + "enumDescriptions": [ + "Applies no cropping to the image.", + "Applies a circular mask to the image." + ], + "type": "string" + }, + "knownIcon": { + "description": "The icon specified by the string name of a list of known icons", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Image": { + "description": "An image that is specified by a URL and can have an onClick action.", + "id": "GoogleAppsCardV1Image", + "properties": { + "altText": { + "description": "The alternative text of this image, used for accessibility.", + "type": "string" + }, + "imageUrl": { + "description": "An image URL.", + "type": "string" + }, + "onClick": { + "$ref": "GoogleAppsCardV1OnClick" + } + }, + "type": "object" + }, + "GoogleAppsCardV1ImageComponent": { + "id": "GoogleAppsCardV1ImageComponent", + "properties": { + "altText": { + "description": "The accessibility label for the image.", + "type": "string" + }, + "borderStyle": { + "$ref": "GoogleAppsCardV1BorderStyle", + "description": "The border style to apply to the image." + }, + "cropStyle": { + "$ref": "GoogleAppsCardV1ImageCropStyle", + "description": "The crop style to apply to the image." + }, + "imageUri": { + "description": "The image URL.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1ImageCropStyle": { + "description": "Represents the crop style applied to an image.", + "id": "GoogleAppsCardV1ImageCropStyle", + "properties": { + "aspectRatio": { + "description": "The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.", + "format": "double", + "type": "number" + }, + "type": { + "description": "The crop type.", + "enum": [ + "IMAGE_CROP_TYPE_UNSPECIFIED", + "SQUARE", + "CIRCLE", + "RECTANGLE_CUSTOM", + "RECTANGLE_4_3" + ], + "enumDescriptions": [ + "No value specified.", + "Applies a square crop.", + "Applies a circular crop.", + "Applies a rectangular crop with a custom aspect ratio.", + "Applies a rectangular crop with a 4:3 aspect ratio." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1OnClick": { + "id": "GoogleAppsCardV1OnClick", + "properties": { + "action": { + "$ref": "GoogleAppsCardV1Action", + "description": "If specified, an action is triggered by this onClick." + }, + "card": { + "$ref": "GoogleAppsCardV1Card", + "description": "A new card is pushed to the card stack after clicking if specified." + }, + "openDynamicLinkAction": { + "$ref": "GoogleAppsCardV1Action", + "description": "An add-on triggers this action when the action needs to open a link. This differs from the open_link above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back." + }, + "openLink": { + "$ref": "GoogleAppsCardV1OpenLink", + "description": "If specified, this onClick triggers an open link action." + } + }, + "type": "object" + }, + "GoogleAppsCardV1OpenLink": { + "id": "GoogleAppsCardV1OpenLink", + "properties": { + "onClose": { + "enum": [ + "NOTHING", + "RELOAD" + ], + "enumDescriptions": [ + "Doesn\u2019t reload the card after the child window closes. Reloads the card after the child window closes. If used in conjunction with [OpenAs.OVERLAY](/workspace/add-ons/reference/rpc/google.apps.card.v1#openas), the child window acts as a modal dialog and the main card is blocked until the child window closes.", + "" + ], + "type": "string" + }, + "openAs": { + "enum": [ + "FULL_SIZE", + "OVERLAY" + ], + "enumDescriptions": [ + "The link opens as a full size window (if that's the frame used by the client.", + "The link opens as an overlay, such as a pop-up." + ], + "type": "string" + }, + "url": { + "description": "The URL to open.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Section": { + "description": "A section contains a collection of widgets that are rendered vertically in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties, for example, float.", + "id": "GoogleAppsCardV1Section", + "properties": { + "collapsible": { + "description": "Indicates whether this section is collapsible. If a section is collapsible, the description must be given.", + "type": "boolean" + }, + "header": { + "description": "The header of the section. Formatted text is supported.", + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "description": "The number of uncollapsible widgets. For example, when a section contains five widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `numUncollapsibleWidget` is taken into account only when collapsible is set to `true`.", + "format": "int32", + "type": "integer" + }, + "widgets": { + "description": "A section must contain at least 1 widget.", + "items": { + "$ref": "GoogleAppsCardV1Widget" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAppsCardV1SelectionInput": { + "description": "A widget that creates a UI item (for example, a drop-down list) with options for users to select.", + "id": "GoogleAppsCardV1SelectionInput", + "properties": { + "items": { + "items": { + "$ref": "GoogleAppsCardV1SelectionItem" + }, + "type": "array" + }, + "label": { + "description": "The label displayed ahead of the switch control.", + "type": "string" + }, + "name": { + "description": "The name of the text input which is used in formInput.", + "type": "string" + }, + "onChangeAction": { + "$ref": "GoogleAppsCardV1Action", + "description": "If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button." + }, + "type": { + "enum": [ + "CHECK_BOX", + "RADIO_BUTTON", + "SWITCH", + "DROPDOWN" + ], + "enumDescriptions": [ + "The selection type is a checkbox.", + "The selection type is a radio button.", + "The selection type is a switch.", + "The selection type is a dropdown." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1SelectionItem": { + "description": "The item in the switch control. A radio button, at most one of the items is selected.", + "id": "GoogleAppsCardV1SelectionItem", + "properties": { + "selected": { + "description": "If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first selected item is treated as selected and the ones after are ignored.", + "type": "boolean" + }, + "text": { + "description": "The text to be displayed.", + "type": "string" + }, + "value": { + "description": "The value associated with this item. The client should use this as a form input value.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1SuggestionItem": { + "description": "A suggestion item. Only supports text for now.", + "id": "GoogleAppsCardV1SuggestionItem", + "properties": { + "text": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Suggestions": { + "description": "A container wrapping elements necessary for showing suggestion items used in text input autocomplete.", + "id": "GoogleAppsCardV1Suggestions", + "properties": { + "items": { + "description": "A list of suggestions items which will be used in are used in autocomplete.", + "items": { + "$ref": "GoogleAppsCardV1SuggestionItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAppsCardV1SwitchControl": { + "id": "GoogleAppsCardV1SwitchControl", + "properties": { + "controlType": { + "description": "The control type, either switch or checkbox.", + "enum": [ + "SWITCH", + "CHECKBOX", + "CHECK_BOX" + ], + "enumDescriptions": [ + "", + "Deprecated in favor of `CHECK_BOX`.", + "" + ], + "type": "string" + }, + "name": { + "description": "The name of the switch widget that's used in formInput.", + "type": "string" + }, + "onChangeAction": { + "$ref": "GoogleAppsCardV1Action", + "description": "The action when the switch state is changed." + }, + "selected": { + "description": "If the switch is selected.", + "type": "boolean" + }, + "value": { + "description": "The value is what is passed back in the callback.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1TextInput": { + "description": "A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions.", + "id": "GoogleAppsCardV1TextInput", + "properties": { + "autoCompleteAction": { + "$ref": "GoogleAppsCardV1Action", + "description": "The refresh function that returns suggestions based on the user's input text. If the callback is not specified, autocomplete is done in client side based on the initial suggestion items." + }, + "hintText": { + "description": "The hint text.", + "type": "string" + }, + "initialSuggestions": { + "$ref": "GoogleAppsCardV1Suggestions", + "description": "The initial suggestions made before any user input." + }, + "label": { + "description": "At least one of label and hintText must be specified.", + "type": "string" + }, + "name": { + "description": "The name of the text input which is used in formInput.", + "type": "string" + }, + "onChangeAction": { + "$ref": "GoogleAppsCardV1Action", + "description": "The onChange action, for example, invoke a function." + }, + "type": { + "description": "The style of the text, for example, a single line or multiple lines.", + "enum": [ + "SINGLE_LINE", + "MULTIPLE_LINE" + ], + "enumDescriptions": [ + "The text is put into a single line.", + "The text is put into multiple lines." + ], + "type": "string" + }, + "value": { + "description": "The default value when there is no input from the user.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1TextParagraph": { + "description": "A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting\") for details.", + "id": "GoogleAppsCardV1TextParagraph", + "properties": { + "text": { + "description": "The text that's shown in the widget.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCardV1Widget": { + "description": "A widget is a UI element that presents texts, images, etc.", + "id": "GoogleAppsCardV1Widget", + "properties": { + "buttonList": { + "$ref": "GoogleAppsCardV1ButtonList", + "description": "A list of buttons. For example, the following JSON creates two buttons. The first is a filled text button and the second is an image button that opens a link: ``` \"buttonList\": { \"buttons\": [ \"button\": { \"text\": \"Edit\", \"Color\": { \"Red\": 255 \"Green\": 255 \"Blue\": 255 } \"disabled\": true }, \"button\": { \"icon\": { \"knownIcon\": \"INVITE\" \"altText\": \"check calendar\" }, \"onClick\": { \"openLink\": { \"url\": \"https://example.com/calendar\" } } }, ] } ```" + }, + "dateTimePicker": { + "$ref": "GoogleAppsCardV1DateTimePicker", + "description": "Displays a selection/input widget for date/time. For example, the following JSON creates a date/time picker for an appointment time: ``` \"date_time_picker\": { \"name\": \"appointment_time\", \"label\": \"Book your appointment at:\", \"type\": \"DateTimePickerType.DATE_AND_TIME\", \"valueMsEpoch\": \"796435200000\" } ```" + }, + "decoratedText": { + "$ref": "GoogleAppsCardV1DecoratedText", + "description": "Displays a decorated text item in this widget. For example, the following JSON creates a decorated text widget showing email address: ``` \"decoratedText\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"topLabel\": \"Email Address\", \"content\": \"heba.salam@example.com\", \"bottomLabel\": \"This is a new Email address!\", \"switchWidget\": { \"name\": \"has_send_welcome_email_to_heba_salam\", \"selected\": false, \"controlType\": \"ControlType.CHECKBOX\" } } ```" + }, + "divider": { + "$ref": "GoogleAppsCardV1Divider", + "description": "Displays a divider. For example, the following JSON creates a divider: ``` \"divider\": { } ```" + }, + "grid": { + "$ref": "GoogleAppsCardV1Grid", + "description": "Displays a grid with a collection of items. For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"numColumns\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4.0 }, \"items\": [ \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" ], \"onClick\": { \"openLink\": { \"url\":\"https://www.example.com\" } } } ```" + }, + "horizontalAlignment": { + "description": "The horizontal alignment of this widget.", + "enum": [ + "HORIZONTAL_ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END" + ], + "enumDescriptions": [ + "Unspecified alignment.", + "Alignment to the start position.", + "Alignment to the center position.", + "Alignment to the end position." + ], + "type": "string" + }, + "image": { + "$ref": "GoogleAppsCardV1Image", + "description": "Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://example.com/heba_salam.png\" \"altText\": \"Avatar for Heba Salam\" } ```" + }, + "selectionInput": { + "$ref": "GoogleAppsCardV1SelectionInput", + "description": "Displays a switch control in this widget. For example, the following JSON creates a dropdown selection for size: ``` \"switchControl\": { \"name\": \"size\", \"label\": \"Size\" \"type\": \"SelectionType.DROPDOWN\", \"items\": [ { \"text\": \"S\", \"value\": \"small\", \"selected\": false }, { \"text\": \"M\", \"value\": \"medium\", \"selected\": true }, { \"text\": \"L\", \"value\": \"large\", \"selected\": false }, { \"text\": \"XL\", \"value\": \"extra_large\", \"selected\": false } ] } ```" + }, + "textInput": { + "$ref": "GoogleAppsCardV1TextInput", + "description": "Displays a text input in this widget. For example, the following JSON creates a text input for mail address: ``` \"textInput\": { \"name\": \"mailing_address\", \"label\": \"Mailing Address\" } ``` As another example, the following JSON creates a text input for programming language with static suggestions: ``` \"textInput\": { \"name\": \"preferred_programing_language\", \"label\": \"Preferred Language\", \"initialSuggestions\": { \"items\": [ { \"text\": \"C++\" }, { \"text\": \"Java\" }, { \"text\": \"JavaScript\" }, { \"text\": \"Python\" } ] } } ```" + }, + "textParagraph": { + "$ref": "GoogleAppsCardV1TextParagraph", + "description": "Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" + } + }, + "type": "object" + }, "Image": { "description": "An image that is specified by a URL and can have an onclick action.", "id": "Image", diff --git a/googleapiclient/discovery_cache/documents/chromemanagement.v1.json b/googleapiclient/discovery_cache/documents/chromemanagement.v1.json index 86ccfde8f27..d07a8266385 100644 --- a/googleapiclient/discovery_cache/documents/chromemanagement.v1.json +++ b/googleapiclient/discovery_cache/documents/chromemanagement.v1.json @@ -288,7 +288,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://chromemanagement.googleapis.com/", "schemas": { "GoogleChromeManagementV1BrowserVersion": { diff --git a/googleapiclient/discovery_cache/documents/chromepolicy.v1.json b/googleapiclient/discovery_cache/documents/chromepolicy.v1.json index 6d07e6fccef..5fcf25da272 100644 --- a/googleapiclient/discovery_cache/documents/chromepolicy.v1.json +++ b/googleapiclient/discovery_cache/documents/chromepolicy.v1.json @@ -324,7 +324,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://chromepolicy.googleapis.com/", "schemas": { "GoogleChromePolicyV1AdditionalTargetKeyName": { diff --git a/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json b/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json index d7dcae1b328..2b11b1a9d5b 100644 --- a/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json +++ b/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json @@ -116,7 +116,7 @@ } } }, - "revision": "20210715", + "revision": "20210721", "rootUrl": "https://chromeuxreport.googleapis.com/", "schemas": { "Bin": { diff --git a/googleapiclient/discovery_cache/documents/classroom.v1.json b/googleapiclient/discovery_cache/documents/classroom.v1.json index 3dbe5ef4e90..5d4d4e4bbc2 100644 --- a/googleapiclient/discovery_cache/documents/classroom.v1.json +++ b/googleapiclient/discovery_cache/documents/classroom.v1.json @@ -2400,7 +2400,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://classroom.googleapis.com/", "schemas": { "Announcement": { diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1.json index f331c25ace0..2ed32944a17 100644 --- a/googleapiclient/discovery_cache/documents/cloudasset.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudasset.v1.json @@ -434,7 +434,7 @@ ] }, "analyzeIamPolicyLongrunning": { - "description": "Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the request to help callers to map responses to requests.", + "description": "Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.", "flatPath": "v1/{v1Id}/{v1Id1}:analyzeIamPolicyLongrunning", "httpMethod": "POST", "id": "cloudasset.analyzeIamPolicyLongrunning", @@ -711,7 +711,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json index b5f8c630e89..e951397025d 100644 --- a/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json @@ -411,7 +411,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningResponse": { diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json index 151353b9fbe..65498f2fc9f 100644 --- a/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json @@ -207,7 +207,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningResponse": { diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json index 59261e3f0f7..b1f82bd9c6c 100644 --- a/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json @@ -221,7 +221,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json index 32a797fe0de..7c9a444a262 100644 --- a/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json @@ -177,7 +177,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningResponse": { diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json index 960ca029b13..aa2ba6fdd26 100644 --- a/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json @@ -167,7 +167,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningResponse": { diff --git a/googleapiclient/discovery_cache/documents/cloudbuild.v1.json b/googleapiclient/discovery_cache/documents/cloudbuild.v1.json index 017d37da2cd..57f24c7ac60 100644 --- a/googleapiclient/discovery_cache/documents/cloudbuild.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudbuild.v1.json @@ -962,7 +962,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent of the collection of `WorkerPools`. Format: `projects/{project}/locations/location`.", + "description": "Required. The parent of the collection of `WorkerPools`. Format: `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1285,7 +1285,7 @@ } } }, - "revision": "20210709", + "revision": "20210715", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ArtifactObjects": { @@ -1370,6 +1370,11 @@ "readOnly": true, "type": "string" }, + "failureInfo": { + "$ref": "FailureInfo", + "description": "Output only. Contains information about the build when status=FAILURE.", + "readOnly": true + }, "finishTime": { "description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", "format": "google-datetime", @@ -1842,6 +1847,10 @@ "description": "The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service.", "type": "string" }, + "sourceToBuild": { + "$ref": "GitRepoSource", + "description": "The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers." + }, "substitutions": { "additionalProperties": { "type": "string" @@ -1960,6 +1969,39 @@ "properties": {}, "type": "object" }, + "FailureInfo": { + "description": "A fatal problem encountered during the execution of the build.", + "id": "FailureInfo", + "properties": { + "detail": { + "description": "Explains the failure issue in more detail using hard-coded text.", + "type": "string" + }, + "type": { + "description": "The name of the failure.", + "enum": [ + "FAILURE_TYPE_UNSPECIFIED", + "PUSH_FAILED", + "PUSH_IMAGE_NOT_FOUND", + "PUSH_NOT_AUTHORIZED", + "LOGGING_FAILURE", + "USER_BUILD_STEP", + "FETCH_SOURCE_FAILED" + ], + "enumDescriptions": [ + "Type unspecified", + "Unable to push the image to the repository.", + "Final image not found.", + "Unauthorized push of the final image.", + "Backend logging failures. Should retry.", + "A build step has failed.", + "The source fetching has failed." + ], + "type": "string" + } + }, + "type": "object" + }, "FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "FileHashes", @@ -2002,6 +2044,79 @@ }, "type": "object" }, + "GitRepoSource": { + "description": "GitRepoSource describes a repo and ref of a code repository.", + "id": "GitRepoSource", + "properties": { + "ref": { + "description": "The branch or tag to use. Must start with \"refs/\" (required).", + "type": "string" + }, + "repoType": { + "description": "See RepoType below.", + "enum": [ + "UNKNOWN", + "CLOUD_SOURCE_REPOSITORIES", + "GITHUB" + ], + "enumDescriptions": [ + "The default, unknown repo type.", + "A Google Cloud Source Repositories-hosted repo.", + "A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise)." + ], + "type": "string" + }, + "uri": { + "description": "The URI of the repo (required).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleDevtoolsCloudbuildV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "requestedCancellation": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "statusMessage": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "HTTPDelivery": { "description": "HTTPDelivery is the delivery configuration for an HTTP notification.", "id": "HTTPDelivery", @@ -2312,6 +2427,50 @@ }, "type": "object" }, + "OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "cancelRequested": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "statusDetail": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "PoolOption": { "description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", "id": "PoolOption", diff --git a/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha1.json b/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha1.json index 3835528236e..d2f5bc6f289 100644 --- a/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha1.json @@ -306,7 +306,7 @@ } } }, - "revision": "20210709", + "revision": "20210715", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ArtifactObjects": { @@ -391,6 +391,11 @@ "readOnly": true, "type": "string" }, + "failureInfo": { + "$ref": "FailureInfo", + "description": "Output only. Contains information about the build when status=FAILURE.", + "readOnly": true + }, "finishTime": { "description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", "format": "google-datetime", @@ -868,6 +873,39 @@ "properties": {}, "type": "object" }, + "FailureInfo": { + "description": "A fatal problem encountered during the execution of the build.", + "id": "FailureInfo", + "properties": { + "detail": { + "description": "Explains the failure issue in more detail using hard-coded text.", + "type": "string" + }, + "type": { + "description": "The name of the failure.", + "enum": [ + "FAILURE_TYPE_UNSPECIFIED", + "PUSH_FAILED", + "PUSH_IMAGE_NOT_FOUND", + "PUSH_NOT_AUTHORIZED", + "LOGGING_FAILURE", + "USER_BUILD_STEP", + "FETCH_SOURCE_FAILED" + ], + "enumDescriptions": [ + "Type unspecified", + "Unable to push the image to the repository.", + "Final image not found.", + "Unauthorized push of the final image.", + "Backend logging failures. Should retry.", + "A build step has failed.", + "The source fetching has failed." + ], + "type": "string" + } + }, + "type": "object" + }, "FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "FileHashes", @@ -882,6 +920,50 @@ }, "type": "object" }, + "GoogleDevtoolsCloudbuildV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleDevtoolsCloudbuildV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "requestedCancellation": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "statusMessage": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "HTTPDelivery": { "description": "HTTPDelivery is the delivery configuration for an HTTP notification.", "id": "HTTPDelivery", @@ -1119,6 +1201,50 @@ }, "type": "object" }, + "OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "cancelRequested": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "statusDetail": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "PoolOption": { "description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", "id": "PoolOption", diff --git a/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha2.json b/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha2.json index 31ad237b980..91b6b16a82f 100644 --- a/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha2.json +++ b/googleapiclient/discovery_cache/documents/cloudbuild.v1alpha2.json @@ -317,7 +317,7 @@ } } }, - "revision": "20210709", + "revision": "20210715", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ArtifactObjects": { @@ -402,6 +402,11 @@ "readOnly": true, "type": "string" }, + "failureInfo": { + "$ref": "FailureInfo", + "description": "Output only. Contains information about the build when status=FAILURE.", + "readOnly": true + }, "finishTime": { "description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", "format": "google-datetime", @@ -879,6 +884,39 @@ "properties": {}, "type": "object" }, + "FailureInfo": { + "description": "A fatal problem encountered during the execution of the build.", + "id": "FailureInfo", + "properties": { + "detail": { + "description": "Explains the failure issue in more detail using hard-coded text.", + "type": "string" + }, + "type": { + "description": "The name of the failure.", + "enum": [ + "FAILURE_TYPE_UNSPECIFIED", + "PUSH_FAILED", + "PUSH_IMAGE_NOT_FOUND", + "PUSH_NOT_AUTHORIZED", + "LOGGING_FAILURE", + "USER_BUILD_STEP", + "FETCH_SOURCE_FAILED" + ], + "enumDescriptions": [ + "Type unspecified", + "Unable to push the image to the repository.", + "Final image not found.", + "Unauthorized push of the final image.", + "Backend logging failures. Should retry.", + "A build step has failed.", + "The source fetching has failed." + ], + "type": "string" + } + }, + "type": "object" + }, "FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "FileHashes", @@ -893,6 +931,50 @@ }, "type": "object" }, + "GoogleDevtoolsCloudbuildV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleDevtoolsCloudbuildV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "requestedCancellation": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "statusMessage": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "HTTPDelivery": { "description": "HTTPDelivery is the delivery configuration for an HTTP notification.", "id": "HTTPDelivery", @@ -1122,6 +1204,50 @@ }, "type": "object" }, + "OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "cancelRequested": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "statusDetail": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "PoolOption": { "description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", "id": "PoolOption", diff --git a/googleapiclient/discovery_cache/documents/cloudbuild.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudbuild.v1beta1.json index debc918fef8..60fc26e128c 100644 --- a/googleapiclient/discovery_cache/documents/cloudbuild.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudbuild.v1beta1.json @@ -317,7 +317,7 @@ } } }, - "revision": "20210709", + "revision": "20210715", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ArtifactObjects": { @@ -402,6 +402,11 @@ "readOnly": true, "type": "string" }, + "failureInfo": { + "$ref": "FailureInfo", + "description": "Output only. Contains information about the build when status=FAILURE.", + "readOnly": true + }, "finishTime": { "description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", "format": "google-datetime", @@ -879,6 +884,39 @@ "properties": {}, "type": "object" }, + "FailureInfo": { + "description": "A fatal problem encountered during the execution of the build.", + "id": "FailureInfo", + "properties": { + "detail": { + "description": "Explains the failure issue in more detail using hard-coded text.", + "type": "string" + }, + "type": { + "description": "The name of the failure.", + "enum": [ + "FAILURE_TYPE_UNSPECIFIED", + "PUSH_FAILED", + "PUSH_IMAGE_NOT_FOUND", + "PUSH_NOT_AUTHORIZED", + "LOGGING_FAILURE", + "USER_BUILD_STEP", + "FETCH_SOURCE_FAILED" + ], + "enumDescriptions": [ + "Type unspecified", + "Unable to push the image to the repository.", + "Final image not found.", + "Unauthorized push of the final image.", + "Backend logging failures. Should retry.", + "A build step has failed.", + "The source fetching has failed." + ], + "type": "string" + } + }, + "type": "object" + }, "FileHashes": { "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", "id": "FileHashes", @@ -893,6 +931,50 @@ }, "type": "object" }, + "GoogleDevtoolsCloudbuildV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleDevtoolsCloudbuildV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "requestedCancellation": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "statusMessage": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "HTTPDelivery": { "description": "HTTPDelivery is the delivery configuration for an HTTP notification.", "id": "HTTPDelivery", @@ -1122,6 +1204,50 @@ }, "type": "object" }, + "OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "cancelRequested": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "statusDetail": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "PoolOption": { "description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", "id": "PoolOption", diff --git a/googleapiclient/discovery_cache/documents/cloudchannel.v1.json b/googleapiclient/discovery_cache/documents/cloudchannel.v1.json index 93d26bfb4ae..c54d5fac47c 100644 --- a/googleapiclient/discovery_cache/documents/cloudchannel.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudchannel.v1.json @@ -1533,7 +1533,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://cloudchannel.googleapis.com/", "schemas": { "GoogleCloudChannelV1ActivateEntitlementRequest": { diff --git a/googleapiclient/discovery_cache/documents/clouddebugger.v2.json b/googleapiclient/discovery_cache/documents/clouddebugger.v2.json index c6961e09fec..f230c90332a 100644 --- a/googleapiclient/discovery_cache/documents/clouddebugger.v2.json +++ b/googleapiclient/discovery_cache/documents/clouddebugger.v2.json @@ -448,7 +448,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://clouddebugger.googleapis.com/", "schemas": { "AliasContext": { diff --git a/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json b/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json index e484b330238..87d0095a508 100644 --- a/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json @@ -546,7 +546,7 @@ } } }, - "revision": "20210708", + "revision": "20210715", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AuditConfig": { @@ -650,7 +650,7 @@ "type": "object" }, "CloudFunction": { - "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations.", + "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations. Next tag: 35", "id": "CloudFunction", "properties": { "availableMemoryMb": { @@ -1186,7 +1186,7 @@ "type": "string" }, "projectId": { - "description": "Project whose secret manager data is being referenced. Cross project secrets are not supported.", + "description": "Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function.", "type": "string" }, "secret": { @@ -1224,7 +1224,7 @@ "type": "string" }, "projectId": { - "description": "Project whose secret manager data is being referenced. Cross project secrets are not supported.", + "description": "Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function.", "type": "string" }, "secret": { diff --git a/googleapiclient/discovery_cache/documents/cloudidentity.v1.json b/googleapiclient/discovery_cache/documents/cloudidentity.v1.json index cb53f243e2b..60ddf81ac93 100644 --- a/googleapiclient/discovery_cache/documents/cloudidentity.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudidentity.v1.json @@ -1273,7 +1273,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { "CheckTransitiveMembershipResponse": { diff --git a/googleapiclient/discovery_cache/documents/cloudidentity.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudidentity.v1beta1.json index 5a0f7b51f60..9bc59dbbb3b 100644 --- a/googleapiclient/discovery_cache/documents/cloudidentity.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudidentity.v1beta1.json @@ -1336,7 +1336,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { "AndroidAttributes": { diff --git a/googleapiclient/discovery_cache/documents/cloudiot.v1.json b/googleapiclient/discovery_cache/documents/cloudiot.v1.json index 9e4532de403..e6155ece230 100644 --- a/googleapiclient/discovery_cache/documents/cloudiot.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudiot.v1.json @@ -938,7 +938,7 @@ } } }, - "revision": "20210706", + "revision": "20210713", "rootUrl": "https://cloudiot.googleapis.com/", "schemas": { "BindDeviceToGatewayRequest": { diff --git a/googleapiclient/discovery_cache/documents/cloudprofiler.v2.json b/googleapiclient/discovery_cache/documents/cloudprofiler.v2.json index c08ea8f34b3..a717af2f8cb 100644 --- a/googleapiclient/discovery_cache/documents/cloudprofiler.v2.json +++ b/googleapiclient/discovery_cache/documents/cloudprofiler.v2.json @@ -216,7 +216,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://cloudprofiler.googleapis.com/", "schemas": { "CreateProfileRequest": { diff --git a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1.json b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1.json index 73d061e7b1e..9b1bd344513 100644 --- a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1.json @@ -1171,7 +1171,7 @@ } } }, - "revision": "20210712", + "revision": "20210718", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { diff --git a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1beta1.json index 040d73c42f8..75c6bf1d17a 100644 --- a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1beta1.json @@ -566,7 +566,7 @@ } } }, - "revision": "20210712", + "revision": "20210718", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { diff --git a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2.json b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2.json index 1adfb46980e..9a6345aed3c 100644 --- a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2.json +++ b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2.json @@ -450,7 +450,7 @@ } } }, - "revision": "20210712", + "revision": "20210718", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2beta1.json b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2beta1.json index 60fd0a7e6b8..a120f794c9c 100644 --- a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v2beta1.json @@ -450,7 +450,7 @@ } } }, - "revision": "20210712", + "revision": "20210718", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json index 329c9f30b1b..8714f98c4b3 100644 --- a/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json +++ b/googleapiclient/discovery_cache/documents/cloudresourcemanager.v3.json @@ -1612,7 +1612,7 @@ } } }, - "revision": "20210712", + "revision": "20210718", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json b/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json index ec7a6ea0fa1..9c7cf6d0664 100644 --- a/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json @@ -418,7 +418,7 @@ } } }, - "revision": "20210625", + "revision": "20210713", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { diff --git a/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json index 676bebcaccc..5f4b884693c 100644 --- a/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json @@ -428,7 +428,7 @@ } } }, - "revision": "20210625", + "revision": "20210713", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { diff --git a/googleapiclient/discovery_cache/documents/cloudsearch.v1.json b/googleapiclient/discovery_cache/documents/cloudsearch.v1.json index 1a804898de4..011701dd916 100644 --- a/googleapiclient/discovery_cache/documents/cloudsearch.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudsearch.v1.json @@ -1916,7 +1916,7 @@ } } }, - "revision": "20210706", + "revision": "20210713", "rootUrl": "https://cloudsearch.googleapis.com/", "schemas": { "AuditLoggingSettings": { diff --git a/googleapiclient/discovery_cache/documents/cloudtasks.v2.json b/googleapiclient/discovery_cache/documents/cloudtasks.v2.json index c01ab21a581..ad7ca00ba91 100644 --- a/googleapiclient/discovery_cache/documents/cloudtasks.v2.json +++ b/googleapiclient/discovery_cache/documents/cloudtasks.v2.json @@ -685,7 +685,7 @@ } } }, - "revision": "20210624", + "revision": "20210713", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpRequest": { diff --git a/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json b/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json index 66b6a9e276a..63a55c3112e 100644 --- a/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json +++ b/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json @@ -809,7 +809,7 @@ } } }, - "revision": "20210624", + "revision": "20210713", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AcknowledgeTaskRequest": { diff --git a/googleapiclient/discovery_cache/documents/cloudtasks.v2beta3.json b/googleapiclient/discovery_cache/documents/cloudtasks.v2beta3.json index 9e54c4fa9c7..77697b28b1b 100644 --- a/googleapiclient/discovery_cache/documents/cloudtasks.v2beta3.json +++ b/googleapiclient/discovery_cache/documents/cloudtasks.v2beta3.json @@ -697,7 +697,7 @@ } } }, - "revision": "20210624", + "revision": "20210713", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpQueue": { diff --git a/googleapiclient/discovery_cache/documents/cloudtrace.v1.json b/googleapiclient/discovery_cache/documents/cloudtrace.v1.json index 2159f3e546d..4b5ae1bce3e 100644 --- a/googleapiclient/discovery_cache/documents/cloudtrace.v1.json +++ b/googleapiclient/discovery_cache/documents/cloudtrace.v1.json @@ -257,7 +257,7 @@ } } }, - "revision": "20210628", + "revision": "20210719", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/cloudtrace.v2.json b/googleapiclient/discovery_cache/documents/cloudtrace.v2.json index 4c808522b7c..884fc9fdfc4 100644 --- a/googleapiclient/discovery_cache/documents/cloudtrace.v2.json +++ b/googleapiclient/discovery_cache/documents/cloudtrace.v2.json @@ -181,7 +181,7 @@ } } }, - "revision": "20210628", + "revision": "20210719", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Annotation": { diff --git a/googleapiclient/discovery_cache/documents/cloudtrace.v2beta1.json b/googleapiclient/discovery_cache/documents/cloudtrace.v2beta1.json index 3f17efdf194..bff08d119d9 100644 --- a/googleapiclient/discovery_cache/documents/cloudtrace.v2beta1.json +++ b/googleapiclient/discovery_cache/documents/cloudtrace.v2beta1.json @@ -273,7 +273,7 @@ } } }, - "revision": "20210628", + "revision": "20210719", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/composer.v1.json b/googleapiclient/discovery_cache/documents/composer.v1.json index 4bf9800ec2c..464d715323f 100644 --- a/googleapiclient/discovery_cache/documents/composer.v1.json +++ b/googleapiclient/discovery_cache/documents/composer.v1.json @@ -406,7 +406,7 @@ } } }, - "revision": "20210713", + "revision": "20210721", "rootUrl": "https://composer.googleapis.com/", "schemas": { "AllowedIpRange": { diff --git a/googleapiclient/discovery_cache/documents/composer.v1beta1.json b/googleapiclient/discovery_cache/documents/composer.v1beta1.json index d5f2fb11ad2..fbe0609b479 100644 --- a/googleapiclient/discovery_cache/documents/composer.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/composer.v1beta1.json @@ -462,7 +462,7 @@ } } }, - "revision": "20210713", + "revision": "20210721", "rootUrl": "https://composer.googleapis.com/", "schemas": { "AllowedIpRange": { diff --git a/googleapiclient/discovery_cache/documents/container.v1.json b/googleapiclient/discovery_cache/documents/container.v1.json index 104da6fa3a8..9bfed38fbf5 100644 --- a/googleapiclient/discovery_cache/documents/container.v1.json +++ b/googleapiclient/discovery_cache/documents/container.v1.json @@ -2459,7 +2459,7 @@ } } }, - "revision": "20210628", + "revision": "20210708", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -4147,7 +4147,7 @@ "type": "boolean" }, "maxNodeCount": { - "description": "Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.", + "description": "Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to be enough quota to scale up the cluster.", "format": "int32", "type": "integer" }, diff --git a/googleapiclient/discovery_cache/documents/container.v1beta1.json b/googleapiclient/discovery_cache/documents/container.v1beta1.json index 578850d99fc..92cc60f014e 100644 --- a/googleapiclient/discovery_cache/documents/container.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/container.v1beta1.json @@ -2484,7 +2484,7 @@ } } }, - "revision": "20210628", + "revision": "20210708", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -4528,7 +4528,7 @@ "type": "boolean" }, "maxNodeCount": { - "description": "Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.", + "description": "Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to be enough quota to scale up the cluster.", "format": "int32", "type": "integer" }, diff --git a/googleapiclient/discovery_cache/documents/containeranalysis.v1alpha1.json b/googleapiclient/discovery_cache/documents/containeranalysis.v1alpha1.json index 6795ac84110..f4e76e081f4 100644 --- a/googleapiclient/discovery_cache/documents/containeranalysis.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/containeranalysis.v1alpha1.json @@ -1219,7 +1219,7 @@ } } }, - "revision": "20210709", + "revision": "20210714", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "Artifact": { diff --git a/googleapiclient/discovery_cache/documents/containeranalysis.v1beta1.json b/googleapiclient/discovery_cache/documents/containeranalysis.v1beta1.json index 7cd890bd8be..026b34228bd 100644 --- a/googleapiclient/discovery_cache/documents/containeranalysis.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/containeranalysis.v1beta1.json @@ -853,7 +853,7 @@ } } }, - "revision": "20210709", + "revision": "20210714", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { diff --git a/googleapiclient/discovery_cache/documents/content.v2.1.json b/googleapiclient/discovery_cache/documents/content.v2.1.json index 9fd3b26e1b0..114451fe821 100644 --- a/googleapiclient/discovery_cache/documents/content.v2.1.json +++ b/googleapiclient/discovery_cache/documents/content.v2.1.json @@ -428,6 +428,42 @@ "https://www.googleapis.com/auth/content" ] }, + "requestphoneverification": { + "description": "Request verification code to start phone verification.", + "flatPath": "{merchantId}/accounts/{accountId}/requestphoneverification", + "httpMethod": "POST", + "id": "content.accounts.requestphoneverification", + "parameterOrder": [ + "merchantId", + "accountId" + ], + "parameters": { + "accountId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/accounts/{accountId}/requestphoneverification", + "request": { + "$ref": "RequestPhoneVerificationRequest" + }, + "response": { + "$ref": "RequestPhoneVerificationResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, "update": { "description": "Updates a Merchant Center account. Any fields that are not provided are deleted from the resource.", "flatPath": "{merchantId}/accounts/{accountId}", @@ -499,6 +535,42 @@ "scopes": [ "https://www.googleapis.com/auth/content" ] + }, + "verifyphonenumber": { + "description": "Validates verification code to verify phone number for the account.", + "flatPath": "{merchantId}/accounts/{accountId}/verifyphonenumber", + "httpMethod": "POST", + "id": "content.accounts.verifyphonenumber", + "parameterOrder": [ + "merchantId", + "accountId" + ], + "parameters": { + "accountId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/accounts/{accountId}/verifyphonenumber", + "request": { + "$ref": "VerifyPhoneNumberRequest" + }, + "response": { + "$ref": "VerifyPhoneNumberResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] } }, "resources": { @@ -1821,6 +1893,60 @@ } } }, + "freelistingsprogram": { + "methods": { + "get": { + "description": "Retrieves the status and review eligibility for the free listing program.", + "flatPath": "{merchantId}/freelistingsprogram", + "httpMethod": "GET", + "id": "content.freelistingsprogram.get", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/freelistingsprogram", + "response": { + "$ref": "FreeListingsProgramStatus" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "requestreview": { + "description": "Requests a review for Free Listings program in the provided region. Important: This method is only whitelisted for selected merchants.", + "flatPath": "{merchantId}/freelistingsprogram/requestreview", + "httpMethod": "POST", + "id": "content.freelistingsprogram.requestreview", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/freelistingsprogram/requestreview", + "request": { + "$ref": "RequestReviewFreeListingsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, "liasettings": { "methods": { "custombatch": { @@ -5493,9 +5619,63 @@ ] } } + }, + "shoppingadsprogram": { + "methods": { + "get": { + "description": "Retrieves the status and review eligibility for the Shopping Ads program.", + "flatPath": "{merchantId}/shoppingadsprogram", + "httpMethod": "GET", + "id": "content.shoppingadsprogram.get", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/shoppingadsprogram", + "response": { + "$ref": "ShoppingAdsProgramStatus" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "requestreview": { + "description": "Requests a review for Shopping Ads program in the provided country.", + "flatPath": "{merchantId}/shoppingadsprogram/requestreview", + "httpMethod": "POST", + "id": "content.shoppingadsprogram.requestreview", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/shoppingadsprogram/requestreview", + "request": { + "$ref": "RequestReviewShoppingAdsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } } }, - "revision": "20210715", + "revision": "20210722", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { @@ -7559,6 +7739,121 @@ }, "type": "object" }, + "FreeListingsProgramStatus": { + "description": "Response message for GetFreeListingsProgramStatus.", + "id": "FreeListingsProgramStatus", + "properties": { + "regionStatuses": { + "description": "Status of the program in each region. Regions with the same status and review eligibility are grouped together in `regionCodes`.", + "items": { + "$ref": "FreeListingsProgramStatusRegionStatus" + }, + "type": "array" + }, + "state": { + "description": "If program is successfully onboarded for at least one region.", + "enum": [ + "PROGRAM_STATE_UNSPECIFIED", + "ONBOARDED", + "NOT_ONBOARDED" + ], + "enumDescriptions": [ + "State is not known.", + "Program is onboarded for at least one country.", + "Program is not onboarded for any country." + ], + "type": "string" + } + }, + "type": "object" + }, + "FreeListingsProgramStatusRegionStatus": { + "description": "Status of program and region.", + "id": "FreeListingsProgramStatusRegionStatus", + "properties": { + "disapprovalDate": { + "description": "Date by which `eligibility_status` will go from `WARNING` to `DISAPPROVED`. It will be present when `eligibility_status` is `WARNING`. Date will be provided in ISO 8601 format i.e. YYYY-MM-DD", + "type": "string" + }, + "eligibilityStatus": { + "description": "Eligibility status of the standard free listing program.", + "enum": [ + "STATE_UNSPECIFIED", + "APPROVED", + "DISAPPROVED", + "WARNING", + "UNDER_REVIEW", + "PENDING_REVIEW", + "ONBOARDING" + ], + "enumDescriptions": [ + "State is not known.", + "If the account has no issues and review is completed successfully.", + "There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", + "If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", + "Account is under review.", + "Account is waiting for review to start.", + "Program is currently onboarding." + ], + "type": "string" + }, + "enhancedEligibilityStatus": { + "description": "Eligibility status of the enhanced free listing program.", + "enum": [ + "STATE_UNSPECIFIED", + "APPROVED", + "DISAPPROVED", + "WARNING", + "UNDER_REVIEW", + "PENDING_REVIEW", + "ONBOARDING" + ], + "enumDescriptions": [ + "State is not known.", + "If the account has no issues and review is completed successfully.", + "There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", + "If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", + "Account is under review.", + "Account is waiting for review to start.", + "Program is currently onboarding." + ], + "type": "string" + }, + "ineligibilityReason": { + "description": "Reason if a program in a given country is not eligible for review. Populated only if `review_eligibility_status` is `INELIGIBLE`.", + "type": "string" + }, + "regionCodes": { + "description": "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes for all the regions with the same `eligibilityStatus` and `reviewEligibility`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reviewEligibilityStatus": { + "description": "If a program in a given country is eligible for review. It will be present only if eligibility status is `DISAPPROVED`.", + "enum": [ + "REVIEW_ELIGIBILITY_UNSPECIFIED", + "ELIGIBLE", + "INELIGIBLE" + ], + "enumDescriptions": [ + "Review eligibility state is unknown.", + "Account for a region code is eligible for review.", + "Account for a region code is not eligible for review." + ], + "type": "string" + }, + "reviewIssues": { + "description": "These issues will be evaluated in review process. Fix all the issues before requesting the review.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GmbAccounts": { "id": "GmbAccounts", "properties": { @@ -13134,12 +13429,78 @@ }, "type": "object" }, + "RequestPhoneVerificationRequest": { + "description": "Request message for the RequestPhoneVerification method.", + "id": "RequestPhoneVerificationRequest", + "properties": { + "languageCode": { + "description": "Language code [IETF BCP 47 syntax](https://tools.ietf.org/html/bcp47) (for example, en-US). Language code is used to provide localized `SMS` and `PHONE_CALL`. Default language used is en-US if not provided.", + "type": "string" + }, + "phoneNumber": { + "description": "Phone number to be verified.", + "type": "string" + }, + "phoneRegionCode": { + "description": "Required. Two letter country code for the phone number, for example `CA` for Canadian numbers. See the [ISO 3166-1 alpha-2](https://wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) officially assigned codes.", + "type": "string" + }, + "phoneVerificationMethod": { + "description": "Verification method to receive verification code.", + "enum": [ + "PHONE_VERIFICATION_METHOD_UNSPECIFIED", + "SMS", + "PHONE_CALL" + ], + "enumDescriptions": [ + "Unknown method.", + "Receive verification code by SMS.", + "Receive verification code by phone call." + ], + "type": "string" + } + }, + "type": "object" + }, + "RequestPhoneVerificationResponse": { + "description": "Response message for the RequestPhoneVerification method.", + "id": "RequestPhoneVerificationResponse", + "properties": { + "verificationId": { + "description": "The verification ID to use in subsequent calls to `verifyphonenumber`.", + "type": "string" + } + }, + "type": "object" + }, "RequestReviewBuyOnGoogleProgramRequest": { "description": "Request message for the RequestReviewProgram method.", "id": "RequestReviewBuyOnGoogleProgramRequest", "properties": {}, "type": "object" }, + "RequestReviewFreeListingsRequest": { + "description": "Request message for the RequestReviewFreeListings Program method.", + "id": "RequestReviewFreeListingsRequest", + "properties": { + "regionCode": { + "description": "The code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country for which review is to be requested.", + "type": "string" + } + }, + "type": "object" + }, + "RequestReviewShoppingAdsRequest": { + "description": "Request message for the RequestReviewShoppingAds program method.", + "id": "RequestReviewShoppingAdsRequest", + "properties": { + "regionCode": { + "description": "The code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country for which review is to be requested.", + "type": "string" + } + }, + "type": "object" + }, "ReturnAddress": { "description": "Return address resource.", "id": "ReturnAddress", @@ -13793,7 +14154,7 @@ "type": "string" }, "query": { - "description": "Required. Query that defines performance metrics to retrieve and dimensions according to which the metrics are to be segmented.", + "description": "Required. Query that defines performance metrics to retrieve and dimensions according to which the metrics are to be segmented. For details on how to construct your query, see the [Query Language guide](https://developers.google.com/shopping-content/guides/reports/query-language/overview).", "type": "string" } }, @@ -13826,23 +14187,23 @@ "type": "string" }, "categoryL1": { - "description": "Product category (1st level) in Google's product taxonomy.", + "description": "[Product category (1st level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", "type": "string" }, "categoryL2": { - "description": "Product category (2nd level) in Google's product taxonomy.", + "description": "[Product category (2nd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", "type": "string" }, "categoryL3": { - "description": "Product category (3rd level) in Google's product taxonomy.", + "description": "[Product category (3rd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", "type": "string" }, "categoryL4": { - "description": "Product category (4th level) in Google's product taxonomy.", + "description": "[Product category (4th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", "type": "string" }, "categoryL5": { - "description": "Product category (5th level) in Google's product taxonomy.", + "description": "[Product category (5th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", "type": "string" }, "currencyCode": { @@ -13878,23 +14239,23 @@ "type": "string" }, "productTypeL1": { - "description": "Product category (1st level) in merchant's own product taxonomy.", + "description": "[Product type (1st level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", "type": "string" }, "productTypeL2": { - "description": "Product category (2nd level) in merchant's own product taxonomy.", + "description": "[Product type (2nd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", "type": "string" }, "productTypeL3": { - "description": "Product category (3rd level) in merchant's own product taxonomy.", + "description": "[Product type (3rd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", "type": "string" }, "productTypeL4": { - "description": "Product category (4th level) in merchant's own product taxonomy.", + "description": "[Product type (4th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", "type": "string" }, "productTypeL5": { - "description": "Product category (5th level) in merchant's own product taxonomy.", + "description": "[Product type (5th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", "type": "string" }, "program": { @@ -14407,6 +14768,99 @@ }, "type": "object" }, + "ShoppingAdsProgramStatus": { + "description": "Response message for GetShoppingAdsProgramStatus.", + "id": "ShoppingAdsProgramStatus", + "properties": { + "regionStatuses": { + "description": "Status of the program in each region. Regions with the same status and review eligibility are grouped together in `regionCodes`.", + "items": { + "$ref": "ShoppingAdsProgramStatusRegionStatus" + }, + "type": "array" + }, + "state": { + "description": "If program is successfully onboarded for at least one region.", + "enum": [ + "PROGRAM_STATE_UNSPECIFIED", + "ONBOARDED", + "NOT_ONBOARDED" + ], + "enumDescriptions": [ + "State is not known.", + "Program is onboarded for at least one country.", + "Program is not onboarded for any country." + ], + "type": "string" + } + }, + "type": "object" + }, + "ShoppingAdsProgramStatusRegionStatus": { + "description": "Status of program and region.", + "id": "ShoppingAdsProgramStatusRegionStatus", + "properties": { + "disapprovalDate": { + "description": "Date by which `eligibility_status` will go from `WARNING` to `DISAPPROVED`. It will be present when `eligibility_status` is `WARNING`. Date will be provided in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format i.e. YYYY-MM-DD", + "type": "string" + }, + "eligibilityStatus": { + "description": "Eligibility status of the Shopping Ads program.", + "enum": [ + "STATE_UNSPECIFIED", + "APPROVED", + "DISAPPROVED", + "WARNING", + "UNDER_REVIEW", + "PENDING_REVIEW", + "ONBOARDING" + ], + "enumDescriptions": [ + "State is not known.", + "If the account has no issues and review is completed successfully.", + "There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", + "If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", + "Account is under review.", + "Account is waiting for review to start.", + "Program is currently onboarding." + ], + "type": "string" + }, + "ineligibilityReason": { + "description": "Reason if a program in a given country is not eligible for review. Populated only if `review_eligibility_status` is `INELIGIBLE`.", + "type": "string" + }, + "regionCodes": { + "description": "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes for all the regions with the same `eligibilityStatus` and `reviewEligibility`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reviewEligibilityStatus": { + "description": "If a program in a given country is eligible for review. It will be present only if eligibility status is `DISAPPROVED`.", + "enum": [ + "REVIEW_ELIGIBILITY_UNSPECIFIED", + "ELIGIBLE", + "INELIGIBLE" + ], + "enumDescriptions": [ + "Review eligibility state is unknown.", + "Account for a region code is eligible for review.", + "Account for a region code is not eligible for review." + ], + "type": "string" + }, + "reviewIssues": { + "description": "These issues will be evaluated in review process. Fix all the issues before requesting the review.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Table": { "id": "Table", "properties": { @@ -14836,6 +15290,46 @@ }, "type": "object" }, + "VerifyPhoneNumberRequest": { + "description": "Request message for the VerifyPhoneNumber method.", + "id": "VerifyPhoneNumberRequest", + "properties": { + "phoneVerificationMethod": { + "description": "Verification method used to receive verification code.", + "enum": [ + "PHONE_VERIFICATION_METHOD_UNSPECIFIED", + "SMS", + "PHONE_CALL" + ], + "enumDescriptions": [ + "Unknown method.", + "Receive verification code by SMS.", + "Receive verification code by phone call." + ], + "type": "string" + }, + "verificationCode": { + "description": "The verification code that was sent to the phone number for validation.", + "type": "string" + }, + "verificationId": { + "description": "The verification ID returned by `requestphoneverification`.", + "type": "string" + } + }, + "type": "object" + }, + "VerifyPhoneNumberResponse": { + "description": "Response message for the VerifyPhoneNumber method.", + "id": "VerifyPhoneNumberResponse", + "properties": { + "verifiedPhoneNumber": { + "description": "Verified phone number if verification is successful.", + "type": "string" + } + }, + "type": "object" + }, "WarehouseBasedDeliveryTime": { "id": "WarehouseBasedDeliveryTime", "properties": { diff --git a/googleapiclient/discovery_cache/documents/content.v2.json b/googleapiclient/discovery_cache/documents/content.v2.json index 53b31b8971c..bbd5fde8c7c 100644 --- a/googleapiclient/discovery_cache/documents/content.v2.json +++ b/googleapiclient/discovery_cache/documents/content.v2.json @@ -3298,7 +3298,7 @@ } } }, - "revision": "20210715", + "revision": "20210722", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/customsearch.v1.json b/googleapiclient/discovery_cache/documents/customsearch.v1.json index 8f8dd044035..f5dafa77fc8 100644 --- a/googleapiclient/discovery_cache/documents/customsearch.v1.json +++ b/googleapiclient/discovery_cache/documents/customsearch.v1.json @@ -674,7 +674,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://customsearch.googleapis.com/", "schemas": { "Promotion": { diff --git a/googleapiclient/discovery_cache/documents/dataflow.v1b3.json b/googleapiclient/discovery_cache/documents/dataflow.v1b3.json index 5fbc81d5cec..98478bc5863 100644 --- a/googleapiclient/discovery_cache/documents/dataflow.v1b3.json +++ b/googleapiclient/discovery_cache/documents/dataflow.v1b3.json @@ -2225,7 +2225,7 @@ } } }, - "revision": "20210703", + "revision": "20210720", "rootUrl": "https://dataflow.googleapis.com/", "schemas": { "ApproximateProgress": { diff --git a/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json b/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json index 2837c640310..2d0d40bdf07 100644 --- a/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json @@ -1596,7 +1596,7 @@ } } }, - "revision": "20210706", + "revision": "20210719", "rootUrl": "https://datalabeling.googleapis.com/", "schemas": { "GoogleCloudDatalabelingV1alpha1CreateInstructionMetadata": { diff --git a/googleapiclient/discovery_cache/documents/datamigration.v1.json b/googleapiclient/discovery_cache/documents/datamigration.v1.json index 466e8ab2f20..edd164540ef 100644 --- a/googleapiclient/discovery_cache/documents/datamigration.v1.json +++ b/googleapiclient/discovery_cache/documents/datamigration.v1.json @@ -1049,7 +1049,7 @@ } } }, - "revision": "20210630", + "revision": "20210717", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json b/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json index 0acc8f380d7..084ab871cf4 100644 --- a/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json @@ -1049,7 +1049,7 @@ } } }, - "revision": "20210630", + "revision": "20210717", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/dataproc.v1.json b/googleapiclient/discovery_cache/documents/dataproc.v1.json index 62f03531c85..d8e0c8574c5 100644 --- a/googleapiclient/discovery_cache/documents/dataproc.v1.json +++ b/googleapiclient/discovery_cache/documents/dataproc.v1.json @@ -2301,7 +2301,7 @@ } } }, - "revision": "20210709", + "revision": "20210715", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { diff --git a/googleapiclient/discovery_cache/documents/dataproc.v1beta2.json b/googleapiclient/discovery_cache/documents/dataproc.v1beta2.json index 1ecf5685faa..4460101f2a5 100644 --- a/googleapiclient/discovery_cache/documents/dataproc.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/dataproc.v1beta2.json @@ -2291,7 +2291,7 @@ } } }, - "revision": "20210709", + "revision": "20210715", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { diff --git a/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json b/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json index 3277cf9a04d..002ff928d25 100644 --- a/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json +++ b/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json @@ -1588,7 +1588,7 @@ } } }, - "revision": "20210624", + "revision": "20210715", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { diff --git a/googleapiclient/discovery_cache/documents/deploymentmanager.v2.json b/googleapiclient/discovery_cache/documents/deploymentmanager.v2.json index 587be4275dd..c6fd56122db 100644 --- a/googleapiclient/discovery_cache/documents/deploymentmanager.v2.json +++ b/googleapiclient/discovery_cache/documents/deploymentmanager.v2.json @@ -988,7 +988,7 @@ } } }, - "revision": "20210624", + "revision": "20210715", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/deploymentmanager.v2beta.json b/googleapiclient/discovery_cache/documents/deploymentmanager.v2beta.json index 7856ca0d982..dd53e9e5f47 100644 --- a/googleapiclient/discovery_cache/documents/deploymentmanager.v2beta.json +++ b/googleapiclient/discovery_cache/documents/deploymentmanager.v2beta.json @@ -1552,7 +1552,7 @@ } } }, - "revision": "20210624", + "revision": "20210715", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { diff --git a/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json b/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json index 6de98214ddf..0357a3e761f 100644 --- a/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json +++ b/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json @@ -184,7 +184,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://digitalassetlinks.googleapis.com/", "schemas": { "AndroidAppAsset": { diff --git a/googleapiclient/discovery_cache/documents/displayvideo.v1.json b/googleapiclient/discovery_cache/documents/displayvideo.v1.json index 548c8cf0235..2a442c25b65 100644 --- a/googleapiclient/discovery_cache/documents/displayvideo.v1.json +++ b/googleapiclient/discovery_cache/documents/displayvideo.v1.json @@ -754,7 +754,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -795,7 +798,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -900,7 +906,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -941,7 +950,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -1902,7 +1914,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -1943,7 +1958,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -2048,7 +2066,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2089,7 +2110,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -2594,7 +2618,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2635,7 +2662,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -2730,7 +2760,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2771,7 +2804,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -2863,7 +2899,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2904,7 +2943,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -3009,7 +3051,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -3050,7 +3095,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -4061,7 +4109,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", + "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", "enum": [ "TARGETING_TYPE_UNSPECIFIED", "TARGETING_TYPE_CHANNEL", @@ -4101,7 +4149,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4142,7 +4193,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -4188,7 +4242,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", + "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", "enum": [ "TARGETING_TYPE_UNSPECIFIED", "TARGETING_TYPE_CHANNEL", @@ -4228,7 +4282,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4269,7 +4326,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -4312,7 +4372,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", + "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", "enum": [ "TARGETING_TYPE_UNSPECIFIED", "TARGETING_TYPE_CHANNEL", @@ -4352,7 +4412,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4393,7 +4456,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -4449,7 +4515,7 @@ "type": "string" }, "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", + "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", "enum": [ "TARGETING_TYPE_UNSPECIFIED", "TARGETING_TYPE_CHANNEL", @@ -4489,7 +4555,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4530,7 +4599,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6149,7 +6221,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6190,7 +6265,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6276,7 +6354,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6317,7 +6398,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6400,7 +6484,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6441,7 +6528,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6537,7 +6627,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6578,7 +6671,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6722,7 +6818,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6763,7 +6862,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6856,7 +6958,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6897,7 +7002,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -6923,7 +7031,7 @@ ], "parameters": { "targetingType": { - "description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION`", + "description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_BUSINESS_CHAIN`", "enum": [ "TARGETING_TYPE_UNSPECIFIED", "TARGETING_TYPE_CHANNEL", @@ -6963,7 +7071,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -7004,7 +7115,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "location": "path", "pattern": "^[^/]+$", @@ -7203,7 +7317,7 @@ } } }, - "revision": "20210708", + "revision": "20210722", "rootUrl": "https://displayvideo.googleapis.com/", "schemas": { "ActivateManualTriggerRequest": { @@ -7836,6 +7950,10 @@ "$ref": "BrowserAssignedTargetingOptionDetails", "description": "Browser details. This field will be populated when the targeting_type is `TARGETING_TYPE_BROWSER`." }, + "businessChainDetails": { + "$ref": "BusinessChainAssignedTargetingOptionDetails", + "description": "Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." + }, "carrierAndIspDetails": { "$ref": "CarrierAndIspAssignedTargetingOptionDetails", "description": "Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`." @@ -7938,6 +8056,10 @@ "$ref": "NegativeKeywordListAssignedTargetingOptionDetails", "description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource." }, + "omidDetails": { + "$ref": "OmidAssignedTargetingOptionDetails", + "description": "Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`." + }, "onScreenPositionDetails": { "$ref": "OnScreenPositionAssignedTargetingOptionDetails", "description": "On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`." @@ -7950,6 +8072,10 @@ "$ref": "ParentalStatusAssignedTargetingOptionDetails", "description": "Parental status details. This field will be populated when the targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`." }, + "poiDetails": { + "$ref": "PoiAssignedTargetingOptionDetails", + "description": "POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`." + }, "proximityLocationListDetails": { "$ref": "ProximityLocationListAssignedTargetingOptionDetails", "description": "Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`." @@ -8007,7 +8133,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -8048,7 +8177,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "readOnly": true, "type": "string" @@ -8362,14 +8494,14 @@ "id": "BulkEditAdvertiserAssignedTargetingOptionsRequest", "properties": { "createRequests": { - "description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", + "description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", "items": { "$ref": "CreateAssignedTargetingOptionsRequest" }, "type": "array" }, "deleteRequests": { - "description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", + "description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", "items": { "$ref": "DeleteAssignedTargetingOptionsRequest" }, @@ -8725,6 +8857,140 @@ }, "type": "object" }, + "BusinessChainAssignedTargetingOptionDetails": { + "description": "Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", + "id": "BusinessChainAssignedTargetingOptionDetails", + "properties": { + "displayName": { + "description": "Output only. The display name of a business chain, e.g. \"KFC\", \"Chase Bank\".", + "readOnly": true, + "type": "string" + }, + "proximityRadiusAmount": { + "description": "Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6.", + "format": "double", + "type": "number" + }, + "proximityRadiusUnit": { + "description": "Required. The unit of distance by which the targeting radius is measured.", + "enum": [ + "DISTANCE_UNIT_UNSPECIFIED", + "DISTANCE_UNIT_MILES", + "DISTANCE_UNIT_KILOMETERS" + ], + "enumDescriptions": [ + "Type value is not specified or is unknown in this version.", + "Miles.", + "Kilometers." + ], + "type": "string" + }, + "targetingOptionId": { + "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`.", + "type": "string" + } + }, + "type": "object" + }, + "BusinessChainSearchTerms": { + "description": "Search terms for Business Chain targeting options. At least one of the field should be populated.", + "id": "BusinessChainSearchTerms", + "properties": { + "businessChain": { + "description": "The search query for the desired business chain. The query can be a prefix, e.g. \"KFC\", \"mercede\".", + "type": "string" + }, + "region": { + "description": "The search query for the desired geo region, e.g. \"Seattle\", \"United State\".", + "type": "string" + } + }, + "type": "object" + }, + "BusinessChainTargetingOptionDetails": { + "description": "Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", + "id": "BusinessChainTargetingOptionDetails", + "properties": { + "businessChain": { + "description": "Output only. The display name of the business chain, e.g. \"KFC\", \"Chase Bank\".", + "readOnly": true, + "type": "string" + }, + "geoRegion": { + "description": "Output only. The display name of the geographic region, e.g. \"Ontario, Canada\".", + "readOnly": true, + "type": "string" + }, + "geoRegionType": { + "description": "Output only. The type of the geographic region.", + "enum": [ + "GEO_REGION_TYPE_UNKNOWN", + "GEO_REGION_TYPE_OTHER", + "GEO_REGION_TYPE_COUNTRY", + "GEO_REGION_TYPE_REGION", + "GEO_REGION_TYPE_TERRITORY", + "GEO_REGION_TYPE_PROVINCE", + "GEO_REGION_TYPE_STATE", + "GEO_REGION_TYPE_PREFECTURE", + "GEO_REGION_TYPE_GOVERNORATE", + "GEO_REGION_TYPE_CANTON", + "GEO_REGION_TYPE_UNION_TERRITORY", + "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", + "GEO_REGION_TYPE_DMA_REGION", + "GEO_REGION_TYPE_METRO", + "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", + "GEO_REGION_TYPE_COUNTY", + "GEO_REGION_TYPE_MUNICIPALITY", + "GEO_REGION_TYPE_CITY", + "GEO_REGION_TYPE_POSTAL_CODE", + "GEO_REGION_TYPE_DEPARTMENT", + "GEO_REGION_TYPE_AIRPORT", + "GEO_REGION_TYPE_TV_REGION", + "GEO_REGION_TYPE_OKRUG", + "GEO_REGION_TYPE_BOROUGH", + "GEO_REGION_TYPE_CITY_REGION", + "GEO_REGION_TYPE_ARRONDISSEMENT", + "GEO_REGION_TYPE_NEIGHBORHOOD", + "GEO_REGION_TYPE_UNIVERSITY", + "GEO_REGION_TYPE_DISTRICT" + ], + "enumDescriptions": [ + "The geographic region type is unknown.", + "The geographic region type is other.", + "The geographic region is a country.", + "The geographic region type is region.", + "The geographic region is a territory.", + "The geographic region is a province.", + "The geographic region is a state.", + "The geographic region is a prefecture.", + "The geographic region is a governorate.", + "The geographic region is a canton.", + "The geographic region is a union territory.", + "The geographic region is an autonomous community.", + "The geographic region is a designated market area (DMA) region.", + "The geographic region type is metro.", + "The geographic region is a congressional district.", + "The geographic region is a county.", + "The geographic region is a municipality.", + "The geographic region is a city.", + "The geographic region targeting type is postal code.", + "The geographic region targeting type is department.", + "The geographic region is an airport.", + "The geographic region is a TV region.", + "The geographic region is an okrug.", + "The geographic region is a borough.", + "The geographic region is a city region.", + "The geographic region is an arrondissement.", + "The geographic region is a neighborhood.", + "The geographic region is a university.", + "The geographic region is a district." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Campaign": { "description": "A single campaign.", "id": "Campaign", @@ -9413,7 +9679,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -9454,7 +9723,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "type": "string" } @@ -10192,7 +10464,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -10233,7 +10508,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "type": "string" } @@ -14276,6 +14554,50 @@ }, "type": "object" }, + "OmidAssignedTargetingOptionDetails": { + "description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`.", + "id": "OmidAssignedTargetingOptionDetails", + "properties": { + "omid": { + "description": "Output only. The type of Open Measurement enabled inventory.", + "enum": [ + "OMID_UNSPECIFIED", + "OMID_FOR_MOBILE_DISPLAY_ADS" + ], + "enumDescriptions": [ + "Default value when omid targeting is not specified in this version.", + "Open Measurement enabled mobile display inventory." + ], + "readOnly": true, + "type": "string" + }, + "targetingOptionId": { + "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`.", + "type": "string" + } + }, + "type": "object" + }, + "OmidTargetingOptionDetails": { + "description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`.", + "id": "OmidTargetingOptionDetails", + "properties": { + "omid": { + "description": "Output only. The type of Open Measurement enabled inventory.", + "enum": [ + "OMID_UNSPECIFIED", + "OMID_FOR_MOBILE_DISPLAY_ADS" + ], + "enumDescriptions": [ + "Default value when omid targeting is not specified in this version.", + "Open Measurement enabled mobile display inventory." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "OnScreenPositionAssignedTargetingOptionDetails": { "description": "On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", "id": "OnScreenPositionAssignedTargetingOptionDetails", @@ -14921,6 +15243,88 @@ }, "type": "object" }, + "PoiAssignedTargetingOptionDetails": { + "description": "Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`.", + "id": "PoiAssignedTargetingOptionDetails", + "properties": { + "displayName": { + "description": "Output only. The display name of a POI, e.g. \"Times Square\", \"Space Needle\".", + "readOnly": true, + "type": "string" + }, + "latitude": { + "description": "Output only. Latitude of the POI rounding to 6th decimal place.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "longitude": { + "description": "Output only. Longitude of the POI rounding to 6th decimal place.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "proximityRadiusAmount": { + "description": "Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`.", + "format": "double", + "type": "number" + }, + "proximityRadiusUnit": { + "description": "Required. The unit of distance by which the targeting radius is measured.", + "enum": [ + "DISTANCE_UNIT_UNSPECIFIED", + "DISTANCE_UNIT_MILES", + "DISTANCE_UNIT_KILOMETERS" + ], + "enumDescriptions": [ + "Type value is not specified or is unknown in this version.", + "Miles.", + "Kilometers." + ], + "type": "string" + }, + "targetingOptionId": { + "description": "Input only. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`.", + "type": "string" + } + }, + "type": "object" + }, + "PoiSearchTerms": { + "description": "Search terms for POI targeting options.", + "id": "PoiSearchTerms", + "properties": { + "poiQuery": { + "description": "The search query for the desired POI name, street address, or coordinate of the desired POI. The query can be a prefix, e.g. \"Times squar\", \"40.7505045,-73.99562\", \"315 W 44th St\", etc.", + "type": "string" + } + }, + "type": "object" + }, + "PoiTargetingOptionDetails": { + "description": "Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`.", + "id": "PoiTargetingOptionDetails", + "properties": { + "displayName": { + "description": "Output only. The display name of a POI, e.g. \"Times Square\", \"Space Needle\".", + "readOnly": true, + "type": "string" + }, + "latitude": { + "description": "Output only. Latitude of the POI rounding to 6th decimal place.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "longitude": { + "description": "Output only. Longitude of the POI rounding to 6th decimal place.", + "format": "double", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, "PrismaConfig": { "description": "Settings specific to the Mediaocean Prisma tool.", "id": "PrismaConfig", @@ -15324,6 +15728,10 @@ "format": "int64", "type": "string" }, + "businessChainSearchTerms": { + "$ref": "BusinessChainSearchTerms", + "description": "Search terms for Business Chain targeting options. Can only be used when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." + }, "geoRegionSearchTerms": { "$ref": "GeoRegionSearchTerms", "description": "Search terms for geo region targeting options. Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`." @@ -15336,6 +15744,10 @@ "pageToken": { "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `SearchTargetingOptions` method. If not specified, the first page of results will be returned.", "type": "string" + }, + "poiSearchTerms": { + "$ref": "PoiSearchTerms", + "description": "Search terms for POI targeting options. Can only be used when targeting_type is `TARGETING_TYPE_POI`." } }, "type": "object" @@ -15585,6 +15997,10 @@ "$ref": "BrowserTargetingOptionDetails", "description": "Browser details." }, + "businessChainDetails": { + "$ref": "BusinessChainTargetingOptionDetails", + "description": "Business chain resource details." + }, "carrierAndIspDetails": { "$ref": "CarrierAndIspTargetingOptionDetails", "description": "Carrier and ISP details." @@ -15646,6 +16062,10 @@ "$ref": "NativeContentPositionTargetingOptionDetails", "description": "Native content position details." }, + "omidDetails": { + "$ref": "OmidTargetingOptionDetails", + "description": "Open Measurement enabled inventory details." + }, "onScreenPositionDetails": { "$ref": "OnScreenPositionTargetingOptionDetails", "description": "On screen position details." @@ -15658,6 +16078,10 @@ "$ref": "ParentalStatusTargetingOptionDetails", "description": "Parental status details." }, + "poiDetails": { + "$ref": "PoiTargetingOptionDetails", + "description": "POI resource details." + }, "sensitiveCategoryDetails": { "$ref": "SensitiveCategoryTargetingOptionDetails", "description": "Sensitive Category details." @@ -15712,7 +16136,10 @@ "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", "TARGETING_TYPE_EXCHANGE", "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" + "TARGETING_TYPE_POI", + "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_NATIVE_CONTENT_POSITION", + "TARGETING_TYPE_OMID" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -15753,7 +16180,10 @@ "Purchase impressions from a group of deals and auction packages.", "Purchase impressions from specific exchanges.", "Purchase impressions from specific sub-exchanges.", - "Target ads to a specific native content position." + "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", + "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific native content position.", + "Target ads in an Open Measurement enabled inventory." ], "readOnly": true, "type": "string" diff --git a/googleapiclient/discovery_cache/documents/dlp.v2.json b/googleapiclient/discovery_cache/documents/dlp.v2.json index 951b53a9203..fc70e28338a 100644 --- a/googleapiclient/discovery_cache/documents/dlp.v2.json +++ b/googleapiclient/discovery_cache/documents/dlp.v2.json @@ -3412,7 +3412,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://dlp.googleapis.com/", "schemas": { "GooglePrivacyDlpV2Action": { diff --git a/googleapiclient/discovery_cache/documents/dns.v1.json b/googleapiclient/discovery_cache/documents/dns.v1.json index 08673fa1e00..f7a872bfb2e 100644 --- a/googleapiclient/discovery_cache/documents/dns.v1.json +++ b/googleapiclient/discovery_cache/documents/dns.v1.json @@ -1235,7 +1235,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { diff --git a/googleapiclient/discovery_cache/documents/dns.v1beta2.json b/googleapiclient/discovery_cache/documents/dns.v1beta2.json index 2abb18245dc..fd029031afb 100644 --- a/googleapiclient/discovery_cache/documents/dns.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/dns.v1beta2.json @@ -1730,7 +1730,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -2606,6 +2606,11 @@ "format": "int32", "type": "integer" }, + "itemsPerRoutingPolicy": { + "description": "Maximum allowed number of items per routing policy.", + "format": "int32", + "type": "integer" + }, "kind": { "default": "dns#quota", "type": "string" @@ -2690,6 +2695,124 @@ }, "type": "object" }, + "RRSetRoutingPolicy": { + "description": "A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection.", + "id": "RRSetRoutingPolicy", + "properties": { + "geo": { + "$ref": "RRSetRoutingPolicyGeoPolicy" + }, + "geoPolicy": { + "$ref": "RRSetRoutingPolicyGeoPolicy" + }, + "kind": { + "default": "dns#rRSetRoutingPolicy", + "type": "string" + }, + "wrr": { + "$ref": "RRSetRoutingPolicyWrrPolicy" + }, + "wrrPolicy": { + "$ref": "RRSetRoutingPolicyWrrPolicy" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyGeoPolicy": { + "id": "RRSetRoutingPolicyGeoPolicy", + "properties": { + "failovers": { + "description": "If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked, and it returns the primarily configured rrdata irrespective of whether it is healthy or not.", + "items": { + "$ref": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem" + }, + "type": "array" + }, + "items": { + "description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", + "items": { + "$ref": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem" + }, + "type": "array" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyGeoPolicy", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyGeoPolicyGeoPolicyItem": { + "id": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "properties": { + "kind": { + "default": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "type": "string" + }, + "location": { + "description": "The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. \"us-east1\", \"southamerica-east1\", \"asia-east1\", etc.", + "type": "string" + }, + "rrdatas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "signatureRrdatas": { + "description": "DNSSEC generated signatures for the above geo_rrdata.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyWrrPolicy": { + "id": "RRSetRoutingPolicyWrrPolicy", + "properties": { + "items": { + "items": { + "$ref": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem" + }, + "type": "array" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyWrrPolicy", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyWrrPolicyWrrPolicyItem": { + "id": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "properties": { + "kind": { + "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "type": "string" + }, + "rrdatas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "signatureRrdatas": { + "description": "DNSSEC generated signatures for the above wrr_rrdata.", + "items": { + "type": "string" + }, + "type": "array" + }, + "weight": { + "description": "The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "ResourceRecordSet": { "description": "A unit of data that is returned by the DNS servers.", "id": "ResourceRecordSet", @@ -2702,6 +2825,10 @@ "description": "For example, www.example.com.", "type": "string" }, + "routingPolicy": { + "$ref": "RRSetRoutingPolicy", + "description": "Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise." + }, "rrdatas": { "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", "items": { diff --git a/googleapiclient/discovery_cache/documents/docs.v1.json b/googleapiclient/discovery_cache/documents/docs.v1.json index 8bf365aa6c4..de77ebf2d61 100644 --- a/googleapiclient/discovery_cache/documents/docs.v1.json +++ b/googleapiclient/discovery_cache/documents/docs.v1.json @@ -216,7 +216,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://docs.googleapis.com/", "schemas": { "AutoText": { diff --git a/googleapiclient/discovery_cache/documents/documentai.v1.json b/googleapiclient/discovery_cache/documents/documentai.v1.json index dca1ace637c..33093ec6d62 100644 --- a/googleapiclient/discovery_cache/documents/documentai.v1.json +++ b/googleapiclient/discovery_cache/documents/documentai.v1.json @@ -664,7 +664,7 @@ } } }, - "revision": "20210709", + "revision": "20210719", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { diff --git a/googleapiclient/discovery_cache/documents/documentai.v1beta2.json b/googleapiclient/discovery_cache/documents/documentai.v1beta2.json index f4ea60eeb25..2458f79746f 100644 --- a/googleapiclient/discovery_cache/documents/documentai.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/documentai.v1beta2.json @@ -292,7 +292,7 @@ } } }, - "revision": "20210709", + "revision": "20210719", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { diff --git a/googleapiclient/discovery_cache/documents/documentai.v1beta3.json b/googleapiclient/discovery_cache/documents/documentai.v1beta3.json index 9b0fea77afb..30e6d7e2594 100644 --- a/googleapiclient/discovery_cache/documents/documentai.v1beta3.json +++ b/googleapiclient/discovery_cache/documents/documentai.v1beta3.json @@ -601,7 +601,7 @@ } } }, - "revision": "20210709", + "revision": "20210719", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata": { diff --git a/googleapiclient/discovery_cache/documents/domains.v1alpha2.json b/googleapiclient/discovery_cache/documents/domains.v1alpha2.json index fa335bafb62..a02c427aa89 100644 --- a/googleapiclient/discovery_cache/documents/domains.v1alpha2.json +++ b/googleapiclient/discovery_cache/documents/domains.v1alpha2.json @@ -721,7 +721,7 @@ } } }, - "revision": "20210629", + "revision": "20210717", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/domainsrdap.v1.json b/googleapiclient/discovery_cache/documents/domainsrdap.v1.json index b94d04d957a..bdc45077b15 100644 --- a/googleapiclient/discovery_cache/documents/domainsrdap.v1.json +++ b/googleapiclient/discovery_cache/documents/domainsrdap.v1.json @@ -289,7 +289,7 @@ } } }, - "revision": "20210719", + "revision": "20210723", "rootUrl": "https://domainsrdap.googleapis.com/", "schemas": { "HttpBody": { diff --git a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json index f81489137e9..38785135325 100644 --- a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json +++ b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json @@ -280,7 +280,7 @@ } } }, - "revision": "20210629", + "revision": "20210721", "rootUrl": "https://doubleclickbidmanager.googleapis.com/", "schemas": { "ChannelGrouping": { @@ -2020,7 +2020,8 @@ "METRIC_PERCENTAGE_FROM_CURRENT_IO_GOAL", "METRIC_DUPLICATE_FLOODLIGHT_IMPRESSIONS", "METRIC_COOKIE_CONSENTED_FLOODLIGHT_IMPRESSIONS", - "METRIC_COOKIE_UNCONSENTED_FLOODLIGHT_IMPRESSIONS" + "METRIC_COOKIE_UNCONSENTED_FLOODLIGHT_IMPRESSIONS", + "METRIC_TRACKING_UNCONSENTED_CLICKS" ], "enumDescriptions": [ "", @@ -2481,6 +2482,7 @@ "", "", "", + "", "" ], "type": "string" diff --git a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json index d97fa120f34..29df71e775d 100644 --- a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json +++ b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json @@ -96,7 +96,7 @@ }, "protocol": "rest", "resources": {}, - "revision": "20210629", + "revision": "20210721", "rootUrl": "https://doubleclickbidmanager.googleapis.com/", "schemas": {}, "servicePath": "doubleclickbidmanager/v1/", diff --git a/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json b/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json index 3817acb2bae..c81e68ea78a 100644 --- a/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json +++ b/googleapiclient/discovery_cache/documents/doubleclicksearch.v2.json @@ -399,7 +399,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://doubleclicksearch.googleapis.com/", "schemas": { "Availability": { diff --git a/googleapiclient/discovery_cache/documents/drive.v2.json b/googleapiclient/discovery_cache/documents/drive.v2.json index 21a01410230..9462a6e9aaf 100644 --- a/googleapiclient/discovery_cache/documents/drive.v2.json +++ b/googleapiclient/discovery_cache/documents/drive.v2.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": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/wVU03Ppwd5ggXGhnpKZIvZMbgyQ\"", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/3C2SqaIsGtaKNfA_Qui6Cbm4VKo\"", "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" @@ -3527,7 +3527,7 @@ } } }, - "revision": "20210711", + "revision": "20210719", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { diff --git a/googleapiclient/discovery_cache/documents/drive.v3.json b/googleapiclient/discovery_cache/documents/drive.v3.json index e31ec522207..ff63d9f61e7 100644 --- a/googleapiclient/discovery_cache/documents/drive.v3.json +++ b/googleapiclient/discovery_cache/documents/drive.v3.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": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/VonNZXFgC6DHBVYBUSgfHu7sXik\"", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/_Lvps3-KgyI7_IwBA-9lM1tZSh4\"", "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" @@ -2191,7 +2191,7 @@ } } }, - "revision": "20210711", + "revision": "20210719", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { diff --git a/googleapiclient/discovery_cache/documents/driveactivity.v2.json b/googleapiclient/discovery_cache/documents/driveactivity.v2.json index 3516f3d3174..a4f3f1ceeae 100644 --- a/googleapiclient/discovery_cache/documents/driveactivity.v2.json +++ b/googleapiclient/discovery_cache/documents/driveactivity.v2.json @@ -132,7 +132,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://driveactivity.googleapis.com/", "schemas": { "Action": { diff --git a/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json b/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json index 349090d6d40..8d7da23bec8 100644 --- a/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json +++ b/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json @@ -850,7 +850,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://essentialcontacts.googleapis.com/", "schemas": { "GoogleCloudEssentialcontactsV1ComputeContactsResponse": { diff --git a/googleapiclient/discovery_cache/documents/eventarc.v1.json b/googleapiclient/discovery_cache/documents/eventarc.v1.json index 99399222bbf..f91df0e20db 100644 --- a/googleapiclient/discovery_cache/documents/eventarc.v1.json +++ b/googleapiclient/discovery_cache/documents/eventarc.v1.json @@ -177,6 +177,97 @@ } }, "resources": { + "channels": { + "methods": { + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels/{channelsId}:getIamPolicy", + "httpMethod": "GET", + "id": "eventarc.projects.locations.channels.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "options.requestedPolicyVersion": { + "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels/{channelsId}:setIamPolicy", + "httpMethod": "POST", + "id": "eventarc.projects.locations.channels.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels/{channelsId}:testIamPermissions", + "httpMethod": "POST", + "id": "eventarc.projects.locations.channels.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -584,7 +675,7 @@ } } }, - "revision": "20210709", + "revision": "20210723", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/eventarc.v1beta1.json b/googleapiclient/discovery_cache/documents/eventarc.v1beta1.json index e5f25d5307a..8718e607de9 100644 --- a/googleapiclient/discovery_cache/documents/eventarc.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/eventarc.v1beta1.json @@ -584,7 +584,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json b/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json index f85b38765f5..ba83ae780c5 100644 --- a/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json @@ -304,7 +304,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://factchecktools.googleapis.com/", "schemas": { "GoogleFactcheckingFactchecktoolsV1alpha1Claim": { diff --git a/googleapiclient/discovery_cache/documents/fcm.v1.json b/googleapiclient/discovery_cache/documents/fcm.v1.json index e96082a98ab..99054e10464 100644 --- a/googleapiclient/discovery_cache/documents/fcm.v1.json +++ b/googleapiclient/discovery_cache/documents/fcm.v1.json @@ -142,7 +142,7 @@ } } }, - "revision": "20210712", + "revision": "20210719", "rootUrl": "https://fcm.googleapis.com/", "schemas": { "AndroidConfig": { diff --git a/googleapiclient/discovery_cache/documents/fcmdata.v1beta1.json b/googleapiclient/discovery_cache/documents/fcmdata.v1beta1.json index 7a54abdc4e0..c95748745ed 100644 --- a/googleapiclient/discovery_cache/documents/fcmdata.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/fcmdata.v1beta1.json @@ -154,7 +154,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://fcmdata.googleapis.com/", "schemas": { "GoogleFirebaseFcmDataV1beta1AndroidDeliveryData": { diff --git a/googleapiclient/discovery_cache/documents/file.v1beta1.json b/googleapiclient/discovery_cache/documents/file.v1beta1.json index bf9f2026e9b..34e8bd72a14 100644 --- a/googleapiclient/discovery_cache/documents/file.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/file.v1beta1.json @@ -542,6 +542,175 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "snapshots": { + "methods": { + "create": { + "description": "Creates a snapshot.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots", + "httpMethod": "POST", + "id": "file.projects.locations.instances.snapshots.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The Filestore Instance to create the snapshots of, in the format projects/{project_id}/locations/{location}/instances/{instance_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + }, + "snapshotId": { + "description": "Required. The ID to use for the snapshot. The ID must be unique within the specified instance. This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/snapshots", + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a snapshot.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots/{snapshotsId}", + "httpMethod": "DELETE", + "id": "file.projects.locations.instances.snapshots.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The snapshot resource name, in the format projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/snapshots/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a specific snapshot.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots/{snapshotsId}", + "httpMethod": "GET", + "id": "file.projects.locations.instances.snapshots.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The snapshot resource name, in the format projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/snapshots/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Snapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all snapshots in a project for either a specified location or for all locations.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots", + "httpMethod": "GET", + "id": "file.projects.locations.instances.snapshots.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "List filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of items to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value to use if there are additional results to retrieve for this list request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The instance for which to retrieve snapshot information, in the format projects/{project_id}/locations/{location}/instances/{instance_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/snapshots", + "response": { + "$ref": "ListSnapshotsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the settings of a specific snapshot.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots/{snapshotsId}", + "httpMethod": "PATCH", + "id": "file.projects.locations.instances.snapshots.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/snapshots/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update. At least one path must be supplied in this field.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "operations": { @@ -672,7 +841,7 @@ } } }, - "revision": "20210708", + "revision": "20210721", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { @@ -1348,6 +1517,24 @@ }, "type": "object" }, + "ListSnapshotsResponse": { + "description": "ListSnapshotsResponse is the result of ListSnapshotsRequest.", + "id": "ListSnapshotsResponse", + "properties": { + "nextPageToken": { + "description": "The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.", + "type": "string" + }, + "snapshots": { + "description": "A list of snapshots in the project for the specified instance.", + "items": { + "$ref": "Snapshot" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "id": "Location", @@ -1493,7 +1680,7 @@ "type": "string" }, "reservedIpRange": { - "description": "A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.", + "description": "Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Named Address Range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. For both cases, the range value (direct CIDR value or the range value with which the named range was created) must be a /29 CIDR block for Basic tier or a /23 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.", "type": "string" } }, @@ -1689,6 +1876,58 @@ }, "type": "object" }, + "Snapshot": { + "description": "A Cloud Filestore snapshot.", + "id": "Snapshot", + "properties": { + "createTime": { + "description": "Output only. The time when the snapshot was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of the snapshot with 2048 characters or less. Requests with longer descriptions will be rejected.", + "type": "string" + }, + "filesystemUsedBytes": { + "description": "Output only. The amount of bytes needed to allocate a full copy of the snapshot content", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource labels to represent user provided metadata.", + "type": "object" + }, + "name": { + "description": "Output only. The resource name of the snapshot, in the format projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The snapshot state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING" + ], + "enumDescriptions": [ + "State not set.", + "Snapshot is being created.", + "Snapshot is available for use.", + "Snapshot is being deleted." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Status": { "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "id": "Status", @@ -1762,7 +2001,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. For V1, Maximum number of deny_maintenance_periods is expected to be one.", + "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", "items": { "$ref": "DenyMaintenancePeriod" }, diff --git a/googleapiclient/discovery_cache/documents/firebase.v1beta1.json b/googleapiclient/discovery_cache/documents/firebase.v1beta1.json index e6f82b4f568..3138b4836c5 100644 --- a/googleapiclient/discovery_cache/documents/firebase.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/firebase.v1beta1.json @@ -1121,7 +1121,7 @@ } } }, - "revision": "20210716", + "revision": "20210723", "rootUrl": "https://firebase.googleapis.com/", "schemas": { "AddFirebaseRequest": { diff --git a/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json b/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json index 882260e8cfa..91f8f00273f 100644 --- a/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json +++ b/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json @@ -1057,7 +1057,7 @@ } } }, - "revision": "20210712", + "revision": "20210716", "rootUrl": "https://firebaseappcheck.googleapis.com/", "schemas": { "GoogleFirebaseAppcheckV1betaAppAttestChallengeResponse": { diff --git a/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json b/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json index c661141bf7e..d1a73482a63 100644 --- a/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json +++ b/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json @@ -317,7 +317,7 @@ } } }, - "revision": "20210716", + "revision": "20210723", "rootUrl": "https://firebasedatabase.googleapis.com/", "schemas": { "DatabaseInstance": { diff --git a/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json b/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json index fb1a3492d25..8e4b8f84f43 100644 --- a/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json +++ b/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json @@ -224,7 +224,7 @@ } } }, - "revision": "20210715", + "revision": "20210719", "rootUrl": "https://firebasedynamiclinks.googleapis.com/", "schemas": { "AnalyticsInfo": { diff --git a/googleapiclient/discovery_cache/documents/firebasehosting.v1.json b/googleapiclient/discovery_cache/documents/firebasehosting.v1.json index 21fc11838a3..0d94e9b05f6 100644 --- a/googleapiclient/discovery_cache/documents/firebasehosting.v1.json +++ b/googleapiclient/discovery_cache/documents/firebasehosting.v1.json @@ -186,7 +186,7 @@ } } }, - "revision": "20210628", + "revision": "20210720", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json b/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json index 3c126da2714..31fbadee7e8 100644 --- a/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json @@ -1939,7 +1939,7 @@ } } }, - "revision": "20210628", + "revision": "20210720", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "ActingUser": { diff --git a/googleapiclient/discovery_cache/documents/firebaseml.v1.json b/googleapiclient/discovery_cache/documents/firebaseml.v1.json index 3f854b35aac..25483c3bbcb 100644 --- a/googleapiclient/discovery_cache/documents/firebaseml.v1.json +++ b/googleapiclient/discovery_cache/documents/firebaseml.v1.json @@ -204,7 +204,7 @@ } } }, - "revision": "20210628", + "revision": "20210721", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json b/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json index 76b6deb55bb..6576d36bea8 100644 --- a/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json @@ -318,7 +318,7 @@ } } }, - "revision": "20210628", + "revision": "20210721", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "DownloadModelResponse": { diff --git a/googleapiclient/discovery_cache/documents/firebasestorage.v1beta.json b/googleapiclient/discovery_cache/documents/firebasestorage.v1beta.json index a5bb7bef4ae..8964d5f4e6e 100644 --- a/googleapiclient/discovery_cache/documents/firebasestorage.v1beta.json +++ b/googleapiclient/discovery_cache/documents/firebasestorage.v1beta.json @@ -238,7 +238,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://firebasestorage.googleapis.com/", "schemas": { "AddFirebaseRequest": { diff --git a/googleapiclient/discovery_cache/documents/fitness.v1.json b/googleapiclient/discovery_cache/documents/fitness.v1.json index 033a7a97798..a088476055e 100644 --- a/googleapiclient/discovery_cache/documents/fitness.v1.json +++ b/googleapiclient/discovery_cache/documents/fitness.v1.json @@ -831,7 +831,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://fitness.googleapis.com/", "schemas": { "AggregateBucket": { diff --git a/googleapiclient/discovery_cache/documents/games.v1.json b/googleapiclient/discovery_cache/documents/games.v1.json index 02fa99f2bfa..bfef6a4a92f 100644 --- a/googleapiclient/discovery_cache/documents/games.v1.json +++ b/googleapiclient/discovery_cache/documents/games.v1.json @@ -1224,7 +1224,7 @@ } } }, - "revision": "20210719", + "revision": "20210721", "rootUrl": "https://games.googleapis.com/", "schemas": { "AchievementDefinition": { diff --git a/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json b/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json index a8350c90cb2..6fce94cb016 100644 --- a/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json +++ b/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json @@ -439,7 +439,7 @@ } } }, - "revision": "20210719", + "revision": "20210721", "rootUrl": "https://gamesconfiguration.googleapis.com/", "schemas": { "AchievementConfiguration": { diff --git a/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json b/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json index dabd356b53a..c252dc01ff6 100644 --- a/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json +++ b/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json @@ -471,7 +471,7 @@ } } }, - "revision": "20210719", + "revision": "20210721", "rootUrl": "https://gamesmanagement.googleapis.com/", "schemas": { "AchievementResetAllResponse": { diff --git a/googleapiclient/discovery_cache/documents/gameservices.v1beta.json b/googleapiclient/discovery_cache/documents/gameservices.v1beta.json index e972b8c02c3..5153409deb5 100644 --- a/googleapiclient/discovery_cache/documents/gameservices.v1beta.json +++ b/googleapiclient/discovery_cache/documents/gameservices.v1beta.json @@ -1357,7 +1357,7 @@ } } }, - "revision": "20210707", + "revision": "20210714", "rootUrl": "https://gameservices.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json b/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json index 4839b33b2ee..0b8eb11d3b7 100644 --- a/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json +++ b/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json @@ -301,7 +301,7 @@ } } }, - "revision": "20210712", + "revision": "20210720", "rootUrl": "https://genomics.googleapis.com/", "schemas": { "Accelerator": { diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1.json b/googleapiclient/discovery_cache/documents/gkehub.v1.json index a8fc993b3c1..01aa654559f 100644 --- a/googleapiclient/discovery_cache/documents/gkehub.v1.json +++ b/googleapiclient/discovery_cache/documents/gkehub.v1.json @@ -905,7 +905,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json b/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json index 436c97b94d5..14fc11cee0d 100644 --- a/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json @@ -670,7 +670,7 @@ } } }, - "revision": "20210709", + "revision": "20210723", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/googleapiclient/discovery_cache/documents/gmail.v1.json b/googleapiclient/discovery_cache/documents/gmail.v1.json index 0bc52256688..6868bb4ee4b 100644 --- a/googleapiclient/discovery_cache/documents/gmail.v1.json +++ b/googleapiclient/discovery_cache/documents/gmail.v1.json @@ -2682,7 +2682,7 @@ } } }, - "revision": "20210712", + "revision": "20210719", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { diff --git a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json index 5d1a44a852a..0882d62b501 100644 --- a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json +++ b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json @@ -265,7 +265,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { diff --git a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json index d2d053f3461..78428cc09de 100644 --- a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json @@ -265,7 +265,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { diff --git a/googleapiclient/discovery_cache/documents/groupsmigration.v1.json b/googleapiclient/discovery_cache/documents/groupsmigration.v1.json index 013156038f4..a637a091f6a 100644 --- a/googleapiclient/discovery_cache/documents/groupsmigration.v1.json +++ b/googleapiclient/discovery_cache/documents/groupsmigration.v1.json @@ -146,7 +146,7 @@ } } }, - "revision": "20210708", + "revision": "20210715", "rootUrl": "https://groupsmigration.googleapis.com/", "schemas": { "Groups": { diff --git a/googleapiclient/discovery_cache/documents/groupssettings.v1.json b/googleapiclient/discovery_cache/documents/groupssettings.v1.json index 3ab2cc90022..e5fc517d483 100644 --- a/googleapiclient/discovery_cache/documents/groupssettings.v1.json +++ b/googleapiclient/discovery_cache/documents/groupssettings.v1.json @@ -152,7 +152,7 @@ } } }, - "revision": "20210708", + "revision": "20210715", "rootUrl": "https://www.googleapis.com/", "schemas": { "Groups": { diff --git a/googleapiclient/discovery_cache/documents/healthcare.v1.json b/googleapiclient/discovery_cache/documents/healthcare.v1.json index 678192e2758..76a184c6a38 100644 --- a/googleapiclient/discovery_cache/documents/healthcare.v1.json +++ b/googleapiclient/discovery_cache/documents/healthcare.v1.json @@ -3920,7 +3920,7 @@ } } }, - "revision": "20210712", + "revision": "20210715", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { "ActivateConsentRequest": { diff --git a/googleapiclient/discovery_cache/documents/healthcare.v1beta1.json b/googleapiclient/discovery_cache/documents/healthcare.v1beta1.json index 83a718de60e..cb66b8681ab 100644 --- a/googleapiclient/discovery_cache/documents/healthcare.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/healthcare.v1beta1.json @@ -4829,7 +4829,7 @@ "nlp": { "methods": { "analyzeEntities": { - "description": "Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities.", + "description": "Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities. This method can only analyze documents written in English.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/services/nlp:analyzeEntities", "httpMethod": "POST", "id": "healthcare.projects.locations.services.nlp.analyzeEntities", @@ -4865,7 +4865,7 @@ } } }, - "revision": "20210712", + "revision": "20210715", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { "ActivateConsentRequest": { diff --git a/googleapiclient/discovery_cache/documents/homegraph.v1.json b/googleapiclient/discovery_cache/documents/homegraph.v1.json index 892a5de818b..b25d5d2b303 100644 --- a/googleapiclient/discovery_cache/documents/homegraph.v1.json +++ b/googleapiclient/discovery_cache/documents/homegraph.v1.json @@ -216,7 +216,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://homegraph.googleapis.com/", "schemas": { "AgentDeviceId": { diff --git a/googleapiclient/discovery_cache/documents/iam.v1.json b/googleapiclient/discovery_cache/documents/iam.v1.json index 612c5d0db31..fe57b81d3b6 100644 --- a/googleapiclient/discovery_cache/documents/iam.v1.json +++ b/googleapiclient/discovery_cache/documents/iam.v1.json @@ -1696,7 +1696,7 @@ } } }, - "revision": "20210623", + "revision": "20210714", "rootUrl": "https://iam.googleapis.com/", "schemas": { "AdminAuditData": { diff --git a/googleapiclient/discovery_cache/documents/iamcredentials.v1.json b/googleapiclient/discovery_cache/documents/iamcredentials.v1.json index cf9bebc1630..b4c5679fd5c 100644 --- a/googleapiclient/discovery_cache/documents/iamcredentials.v1.json +++ b/googleapiclient/discovery_cache/documents/iamcredentials.v1.json @@ -226,7 +226,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://iamcredentials.googleapis.com/", "schemas": { "GenerateAccessTokenRequest": { diff --git a/googleapiclient/discovery_cache/documents/iap.v1.json b/googleapiclient/discovery_cache/documents/iap.v1.json index 736565dd85a..801146de33f 100644 --- a/googleapiclient/discovery_cache/documents/iap.v1.json +++ b/googleapiclient/discovery_cache/documents/iap.v1.json @@ -487,7 +487,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://iap.googleapis.com/", "schemas": { "AccessDeniedPageSettings": { diff --git a/googleapiclient/discovery_cache/documents/iap.v1beta1.json b/googleapiclient/discovery_cache/documents/iap.v1beta1.json index bf97f95873c..f0823b81612 100644 --- a/googleapiclient/discovery_cache/documents/iap.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/iap.v1beta1.json @@ -194,7 +194,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://iap.googleapis.com/", "schemas": { "Binding": { diff --git a/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json b/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json index 39dfb5c4d36..5fb85ea75dc 100644 --- a/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json @@ -371,7 +371,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://ideahub.googleapis.com/", "schemas": { "GoogleSearchIdeahubV1alphaAvailableLocale": { diff --git a/googleapiclient/discovery_cache/documents/keep.v1.json b/googleapiclient/discovery_cache/documents/keep.v1.json index c0422a28b39..13701eac9be 100644 --- a/googleapiclient/discovery_cache/documents/keep.v1.json +++ b/googleapiclient/discovery_cache/documents/keep.v1.json @@ -314,7 +314,7 @@ } } }, - "revision": "20210713", + "revision": "20210720", "rootUrl": "https://keep.googleapis.com/", "schemas": { "Attachment": { diff --git a/googleapiclient/discovery_cache/documents/language.v1.json b/googleapiclient/discovery_cache/documents/language.v1.json index b399c211df4..35f1bccec4d 100644 --- a/googleapiclient/discovery_cache/documents/language.v1.json +++ b/googleapiclient/discovery_cache/documents/language.v1.json @@ -227,7 +227,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { diff --git a/googleapiclient/discovery_cache/documents/language.v1beta1.json b/googleapiclient/discovery_cache/documents/language.v1beta1.json index 2955e574d39..df36603861b 100644 --- a/googleapiclient/discovery_cache/documents/language.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/language.v1beta1.json @@ -189,7 +189,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { diff --git a/googleapiclient/discovery_cache/documents/language.v1beta2.json b/googleapiclient/discovery_cache/documents/language.v1beta2.json index 45ddfa174c4..8186e53b356 100644 --- a/googleapiclient/discovery_cache/documents/language.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/language.v1beta2.json @@ -227,7 +227,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { diff --git a/googleapiclient/discovery_cache/documents/libraryagent.v1.json b/googleapiclient/discovery_cache/documents/libraryagent.v1.json index 09bb92a40c7..7844635c4da 100644 --- a/googleapiclient/discovery_cache/documents/libraryagent.v1.json +++ b/googleapiclient/discovery_cache/documents/libraryagent.v1.json @@ -279,7 +279,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://libraryagent.googleapis.com/", "schemas": { "GoogleExampleLibraryagentV1Book": { diff --git a/googleapiclient/discovery_cache/documents/localservices.v1.json b/googleapiclient/discovery_cache/documents/localservices.v1.json index 9fa3eed29e1..1f005bf58c6 100644 --- a/googleapiclient/discovery_cache/documents/localservices.v1.json +++ b/googleapiclient/discovery_cache/documents/localservices.v1.json @@ -250,7 +250,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://localservices.googleapis.com/", "schemas": { "GoogleAdsHomeservicesLocalservicesV1AccountReport": { diff --git a/googleapiclient/discovery_cache/documents/logging.v2.json b/googleapiclient/discovery_cache/documents/logging.v2.json index af31f22b789..aaf3245878a 100644 --- a/googleapiclient/discovery_cache/documents/logging.v2.json +++ b/googleapiclient/discovery_cache/documents/logging.v2.json @@ -5482,7 +5482,7 @@ } } }, - "revision": "20210709", + "revision": "20210714", "rootUrl": "https://logging.googleapis.com/", "schemas": { "BigQueryOptions": { diff --git a/googleapiclient/discovery_cache/documents/manufacturers.v1.json b/googleapiclient/discovery_cache/documents/manufacturers.v1.json index f4f3a4368f1..e62e66bf2f7 100644 --- a/googleapiclient/discovery_cache/documents/manufacturers.v1.json +++ b/googleapiclient/discovery_cache/documents/manufacturers.v1.json @@ -287,7 +287,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://manufacturers.googleapis.com/", "schemas": { "Attributes": { diff --git a/googleapiclient/discovery_cache/documents/metastore.v1alpha.json b/googleapiclient/discovery_cache/documents/metastore.v1alpha.json index f4f551d84b9..a0e9c9a0231 100644 --- a/googleapiclient/discovery_cache/documents/metastore.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/metastore.v1alpha.json @@ -986,7 +986,7 @@ } } }, - "revision": "20210702", + "revision": "20210715", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AuditConfig": { @@ -1073,14 +1073,16 @@ "CREATING", "DELETING", "ACTIVE", - "FAILED" + "FAILED", + "RESTORING" ], "enumDescriptions": [ "The state of the backup is unknown.", "The backup is being created.", "The backup is being deleted.", "The backup is active and ready to use.", - "The backup failed." + "The backup failed.", + "The backup is being restored." ], "readOnly": true, "type": "string" diff --git a/googleapiclient/discovery_cache/documents/metastore.v1beta.json b/googleapiclient/discovery_cache/documents/metastore.v1beta.json index 4df5cecce32..39018e983dd 100644 --- a/googleapiclient/discovery_cache/documents/metastore.v1beta.json +++ b/googleapiclient/discovery_cache/documents/metastore.v1beta.json @@ -986,7 +986,7 @@ } } }, - "revision": "20210702", + "revision": "20210715", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AuditConfig": { @@ -1073,14 +1073,16 @@ "CREATING", "DELETING", "ACTIVE", - "FAILED" + "FAILED", + "RESTORING" ], "enumDescriptions": [ "The state of the backup is unknown.", "The backup is being created.", "The backup is being deleted.", "The backup is active and ready to use.", - "The backup failed." + "The backup failed.", + "The backup is being restored." ], "readOnly": true, "type": "string" diff --git a/googleapiclient/discovery_cache/documents/ml.v1.json b/googleapiclient/discovery_cache/documents/ml.v1.json index 03ce4da5fbb..7d73a397904 100644 --- a/googleapiclient/discovery_cache/documents/ml.v1.json +++ b/googleapiclient/discovery_cache/documents/ml.v1.json @@ -1486,7 +1486,7 @@ } } }, - "revision": "20210709", + "revision": "20210720", "rootUrl": "https://ml.googleapis.com/", "schemas": { "GoogleApi__HttpBody": { diff --git a/googleapiclient/discovery_cache/documents/monitoring.v1.json b/googleapiclient/discovery_cache/documents/monitoring.v1.json index b7486450176..b66e4d64995 100644 --- a/googleapiclient/discovery_cache/documents/monitoring.v1.json +++ b/googleapiclient/discovery_cache/documents/monitoring.v1.json @@ -114,6 +114,131 @@ }, "protocol": "rest", "resources": { + "locations": { + "resources": { + "global": { + "resources": { + "metricsScopes": { + "methods": { + "get": { + "description": "Returns a specific Metrics Scope.", + "flatPath": "v1/locations/global/metricsScopes/{metricsScopesId}", + "httpMethod": "GET", + "id": "monitoring.locations.global.metricsScopes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Metrics Scope. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}", + "location": "path", + "pattern": "^locations/global/metricsScopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "MetricsScope" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ] + }, + "listMetricScopesByMonitoredProject": { + "description": "Returns a list of every Metrics Scope that a specific MonitoredProject has been added to. The metrics scope representing the specified monitored project will always be the first entry in the response.", + "flatPath": "v1/locations/global/metricsScopes:listMetricScopesByMonitoredProject", + "httpMethod": "GET", + "id": "monitoring.locations.global.metricsScopes.listMetricScopesByMonitoredProject", + "parameterOrder": [], + "parameters": { + "monitoredResourceContainer": { + "description": "Required. The resource name of the Monitored Project being requested. Example: projects/{MONITORED_PROJECT_ID_OR_NUMBER}", + "location": "query", + "type": "string" + } + }, + "path": "v1/locations/global/metricsScopes:listMetricScopesByMonitoredProject", + "response": { + "$ref": "ListMetricsScopesByMonitoredProjectResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ] + } + }, + "resources": { + "projects": { + "methods": { + "create": { + "description": "Adds a MonitoredProject with the given project ID to the specified Metrics Scope.", + "flatPath": "v1/locations/global/metricsScopes/{metricsScopesId}/projects", + "httpMethod": "POST", + "id": "monitoring.locations.global.metricsScopes.projects.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the existing Metrics Scope that will monitor this project. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}", + "location": "path", + "pattern": "^locations/global/metricsScopes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/projects", + "request": { + "$ref": "MonitoredProject" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.write" + ] + }, + "delete": { + "description": "Deletes a MonitoredProject from the specified Metrics Scope.", + "flatPath": "v1/locations/global/metricsScopes/{metricsScopesId}/projects/{projectsId}", + "httpMethod": "DELETE", + "id": "monitoring.locations.global.metricsScopes.projects.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the MonitoredProject. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}Authorization requires the following Google IAM (https://cloud.google.com/iam) permissions on both the Metrics Scope and on the MonitoredProject: monitoring.metricsScopes.link", + "location": "path", + "pattern": "^locations/global/metricsScopes/[^/]+/projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.write" + ] + } + } + } + } + } + } + } + } + }, "operations": { "methods": { "get": { @@ -316,7 +441,7 @@ } } }, - "revision": "20210712", + "revision": "20210720", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -765,6 +890,68 @@ }, "type": "object" }, + "ListMetricsScopesByMonitoredProjectResponse": { + "description": "Response for the ListMetricsScopesByMonitoredProject method.", + "id": "ListMetricsScopesByMonitoredProjectResponse", + "properties": { + "metricsScopes": { + "description": "A set of all metrics scopes that the specified monitored project has been added to.", + "items": { + "$ref": "MetricsScope" + }, + "type": "array" + } + }, + "type": "object" + }, + "MetricsScope": { + "description": "Represents a Metrics Scope (https://cloud.google.com/monitoring/settings#concept-scope) in Cloud Monitoring, which specifies one or more Google projects and zero or more AWS accounts to monitor together.", + "id": "MetricsScope", + "properties": { + "createTime": { + "description": "Output only. The time when this Metrics Scope was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "monitoredProjects": { + "description": "Output only. The list of projects monitored by this Metrics Scope.", + "items": { + "$ref": "MonitoredProject" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Immutable. The resource name of the Monitoring Metrics Scope. On input, the resource name can be specified with the scoping project ID or number. On output, the resource name is specified with the scoping project number. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when this Metrics Scope record was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MonitoredProject": { + "description": "A project being monitored (https://cloud.google.com/monitoring/settings/multiple-projects#create-multi) by a Metrics Scope.", + "id": "MonitoredProject", + "properties": { + "createTime": { + "description": "Output only. The time when this MonitoredProject was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the MonitoredProject. On input, the resource name includes the scoping project ID and monitored project ID. On output, it contains the equivalent project numbers. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}", + "type": "string" + } + }, + "type": "object" + }, "MosaicLayout": { "description": "A mosaic layout divides the available space into a grid of blocks, and overlays the grid with tiles. Unlike GridLayout, tiles may span multiple grid blocks and can be placed at arbitrary locations in the grid.", "id": "MosaicLayout", diff --git a/googleapiclient/discovery_cache/documents/monitoring.v3.json b/googleapiclient/discovery_cache/documents/monitoring.v3.json index 188ad133710..9c5dd6f00e6 100644 --- a/googleapiclient/discovery_cache/documents/monitoring.v3.json +++ b/googleapiclient/discovery_cache/documents/monitoring.v3.json @@ -2541,7 +2541,7 @@ } } }, - "revision": "20210712", + "revision": "20210720", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -3162,7 +3162,7 @@ "type": "object" }, "DistributionCut": { - "description": "A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the count of values x in the Distribution such that range.min <= x < range.max.", + "description": "A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max.", "id": "DistributionCut", "properties": { "distributionFilter": { @@ -3427,7 +3427,7 @@ "type": "object" }, "GoogleMonitoringV3Range": { - "description": "Range of numerical values, inclusive of min and exclusive of max. If the open range \"< range.max\" is desired, set range.min = -infinity. If the open range \">= range.min\" is desired, set range.max = infinity.", + "description": "Range of numerical values within min and max. If the open range \"< range.max\" is desired, set range.min = -infinity. If the open range \">= range.min\" is desired, set range.max = infinity.", "id": "GoogleMonitoringV3Range", "properties": { "max": { @@ -4161,7 +4161,7 @@ "type": "object" }, "MetricRange": { - "description": "A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE.", + "description": "A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE.", "id": "MetricRange", "properties": { "range": { diff --git a/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json b/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json index 606797040f9..cb27e6acbf6 100644 --- a/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json +++ b/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json @@ -530,7 +530,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://mybusinessaccountmanagement.googleapis.com/", "schemas": { "AcceptInvitationRequest": { diff --git a/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json b/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json index b7031c8428a..2fe0a4fca56 100644 --- a/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json +++ b/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json @@ -194,7 +194,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://mybusinesslodging.googleapis.com/", "schemas": { "Accessibility": { diff --git a/googleapiclient/discovery_cache/documents/mybusinessnotifications.v1.json b/googleapiclient/discovery_cache/documents/mybusinessnotifications.v1.json index 40c839632c1..a3ec63c8bff 100644 --- a/googleapiclient/discovery_cache/documents/mybusinessnotifications.v1.json +++ b/googleapiclient/discovery_cache/documents/mybusinessnotifications.v1.json @@ -130,7 +130,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notifications/setting`.", + "description": "Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notificationSetting`.", "location": "path", "pattern": "^accounts/[^/]+/notificationSetting$", "required": true, @@ -154,7 +154,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://mybusinessnotifications.googleapis.com/", "schemas": { "NotificationSetting": { @@ -162,7 +162,7 @@ "id": "NotificationSetting", "properties": { "name": { - "description": "Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notifications/setting`.", + "description": "Required. The resource name this setting is for. This is of the form `accounts/{account_id}/notificationSetting`.", "type": "string" }, "notificationTypes": { @@ -178,7 +178,8 @@ "UPDATED_QUESTION", "NEW_ANSWER", "UPDATED_ANSWER", - "DUPLICATE_LOCATION" + "DUPLICATE_LOCATION", + "LOSS_OF_VOICE_OF_MERCHANT" ], "enumDescriptions": [ "No notification type. Will not match any notifications.", @@ -190,7 +191,8 @@ "A question of the location is updated. The notification will provide the resource name of question.", "A new answer is added to the location. The notification will provide the resource name of question and answer.", "An answer of the location is updated. The notification will provide the resource name of question and answer.", - "Indicates whether there is a change in location metadata's duplicate location field." + "Indicates whether there is a change in location metadata's duplicate location field.", + "Indicates whether the location has a loss in voice of merchant status. Call GetVoiceOfMerchantState rpc for more details" ], "type": "string" }, diff --git a/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json b/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json index 0d9eecdb34f..f0f744779ea 100644 --- a/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json +++ b/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json @@ -281,7 +281,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://mybusinessplaceactions.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json b/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json index 10bc94a3f64..fb124731904 100644 --- a/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json @@ -591,7 +591,7 @@ } } }, - "revision": "20210624", + "revision": "20210721", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -1727,7 +1727,8 @@ "NEXT_HOP_VPN_GATEWAY", "NEXT_HOP_INTERNET_GATEWAY", "NEXT_HOP_BLACKHOLE", - "NEXT_HOP_ILB" + "NEXT_HOP_ILB", + "NEXT_HOP_ROUTER_APPLIANCE" ], "enumDescriptions": [ "Unspecified type. Default value.", @@ -1740,7 +1741,8 @@ "Next hop is a VPN gateway. This scenario only happens when tracing connectivity from an on-premises network to Google Cloud through a VPN. The analysis simulates a packet departing from the on-premises network through a VPN tunnel and arriving at a Cloud VPN gateway.", "Next hop is an internet gateway.", "Next hop is blackhole; that is, the next hop either does not exist or is not running.", - "Next hop is the forwarding rule of an Internal Load Balancer." + "Next hop is the forwarding rule of an Internal Load Balancer.", + "Next hop is a [router appliance instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview)." ], "type": "string" }, diff --git a/googleapiclient/discovery_cache/documents/notebooks.v1.json b/googleapiclient/discovery_cache/documents/notebooks.v1.json index 9f686dc1c7b..9a4d890801c 100644 --- a/googleapiclient/discovery_cache/documents/notebooks.v1.json +++ b/googleapiclient/discovery_cache/documents/notebooks.v1.json @@ -1609,7 +1609,7 @@ } } }, - "revision": "20210713", + "revision": "20210715", "rootUrl": "https://notebooks.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2498,17 +2498,17 @@ "id": "LocalDisk", "properties": { "autoDelete": { - "description": "Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", + "description": "Optional. Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", "readOnly": true, "type": "boolean" }, "boot": { - "description": "Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", + "description": "Optional. Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", "readOnly": true, "type": "boolean" }, "deviceName": { - "description": "Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "description": "Optional. Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", "readOnly": true, "type": "string" }, @@ -2521,14 +2521,14 @@ "type": "array" }, "index": { - "description": "Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.", + "description": "Output only. A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.", "format": "int32", "readOnly": true, "type": "integer" }, "initializeParams": { "$ref": "LocalDiskInitializeParams", - "description": "Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both." + "description": "Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both." }, "interface": { "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI", @@ -2540,7 +2540,7 @@ "type": "string" }, "licenses": { - "description": "Output only. [Output Only] Any valid publicly visible licenses.", + "description": "Output only. Any valid publicly visible licenses.", "items": { "type": "string" }, @@ -2563,7 +2563,7 @@ "type": "object" }, "LocalDiskInitializeParams": { - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", + "description": "Input only. Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", "id": "LocalDiskInitializeParams", "properties": { "description": { @@ -2875,7 +2875,7 @@ "readOnly": true }, "name": { - "description": "Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}`", + "description": "Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtimeId}`", "readOnly": true, "type": "string" }, @@ -2996,11 +2996,11 @@ "type": "object" }, "RuntimeGuestOsFeature": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk.", + "description": "Optional. A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Guest OS features for boot disk.", "id": "RuntimeGuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS", + "description": "The ID of a supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Valid values: * FEATURE_TYPE_UNSPECIFIED * MULTI_IP_SUBNET * SECURE_BOOT * UEFI_COMPATIBLE * VIRTIO_SCSI_MULTIQUEUE * WINDOWS", "type": "string" } }, @@ -3022,7 +3022,7 @@ "type": "object" }, "RuntimeShieldedInstanceConfig": { - "description": "A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid.", + "description": "A set of Shielded Instance options. Check [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). Not all combinations are valid.", "id": "RuntimeShieldedInstanceConfig", "properties": { "enableIntegrityMonitoring": { @@ -3041,7 +3041,7 @@ "type": "object" }, "RuntimeSoftwareConfig": { - "description": "Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true", + "description": "Specifies the selection and configuration of software inside the runtime. The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * `idle_shutdown: true` * `idle_shutdown_timeout: 180` * `report-system-health: true`", "id": "RuntimeSoftwareConfig", "properties": { "customGpuDriverPath": { diff --git a/googleapiclient/discovery_cache/documents/ondemandscanning.v1.json b/googleapiclient/discovery_cache/documents/ondemandscanning.v1.json index 67987a82562..4a8ccf19c6f 100644 --- a/googleapiclient/discovery_cache/documents/ondemandscanning.v1.json +++ b/googleapiclient/discovery_cache/documents/ondemandscanning.v1.json @@ -339,7 +339,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { @@ -1166,13 +1166,15 @@ "PACKAGE_TYPE_UNSPECIFIED", "OS", "MAVEN", - "GO" + "GO", + "GO_STDLIB" ], "enumDescriptions": [ "", "Operating System", - "", - "" + "Java packages from Maven.", + "Go third-party packages.", + "Go toolchain + standard library packages." ], "type": "string" }, diff --git a/googleapiclient/discovery_cache/documents/ondemandscanning.v1beta1.json b/googleapiclient/discovery_cache/documents/ondemandscanning.v1beta1.json index 5ccc5b862e6..ee88e9a1769 100644 --- a/googleapiclient/discovery_cache/documents/ondemandscanning.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/ondemandscanning.v1beta1.json @@ -339,7 +339,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { @@ -1166,13 +1166,15 @@ "PACKAGE_TYPE_UNSPECIFIED", "OS", "MAVEN", - "GO" + "GO", + "GO_STDLIB" ], "enumDescriptions": [ "", "Operating System", - "", - "" + "Java packages from Maven.", + "Go third-party packages.", + "Go toolchain + standard library packages." ], "type": "string" }, diff --git a/googleapiclient/discovery_cache/documents/orgpolicy.v2.json b/googleapiclient/discovery_cache/documents/orgpolicy.v2.json index d4862605306..619b2edb939 100644 --- a/googleapiclient/discovery_cache/documents/orgpolicy.v2.json +++ b/googleapiclient/discovery_cache/documents/orgpolicy.v2.json @@ -751,7 +751,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://orgpolicy.googleapis.com/", "schemas": { "GoogleCloudOrgpolicyV2Constraint": { diff --git a/googleapiclient/discovery_cache/documents/oslogin.v1.json b/googleapiclient/discovery_cache/documents/oslogin.v1.json index 132a49111da..65b2e0f5f4e 100644 --- a/googleapiclient/discovery_cache/documents/oslogin.v1.json +++ b/googleapiclient/discovery_cache/documents/oslogin.v1.json @@ -306,7 +306,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/oslogin.v1alpha.json b/googleapiclient/discovery_cache/documents/oslogin.v1alpha.json index 34cdc57a91f..54d1e2f6a1a 100644 --- a/googleapiclient/discovery_cache/documents/oslogin.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/oslogin.v1alpha.json @@ -374,7 +374,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/oslogin.v1beta.json b/googleapiclient/discovery_cache/documents/oslogin.v1beta.json index 61a06458096..bcbb237ccdc 100644 --- a/googleapiclient/discovery_cache/documents/oslogin.v1beta.json +++ b/googleapiclient/discovery_cache/documents/oslogin.v1beta.json @@ -344,7 +344,7 @@ } } }, - "revision": "20210712", + "revision": "20210717", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json b/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json index 292af03f8ce..3cd7c2ad12c 100644 --- a/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json +++ b/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json @@ -193,7 +193,7 @@ } } }, - "revision": "20210716", + "revision": "20210723", "rootUrl": "https://pagespeedonline.googleapis.com/", "schemas": { "AuditRefs": { diff --git a/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json b/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json index e02a954caac..40cf93d9505 100644 --- a/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json +++ b/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json @@ -366,7 +366,7 @@ } } }, - "revision": "20210719", + "revision": "20210725", "rootUrl": "https://paymentsresellersubscription.googleapis.com/", "schemas": { "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest": { diff --git a/googleapiclient/discovery_cache/documents/people.v1.json b/googleapiclient/discovery_cache/documents/people.v1.json index 3381c07ea63..83025d0019b 100644 --- a/googleapiclient/discovery_cache/documents/people.v1.json +++ b/googleapiclient/discovery_cache/documents/people.v1.json @@ -395,7 +395,7 @@ ] }, "list": { - "description": "List all \"Other contacts\", that is contacts that are not in a contact group. \"Other contacts\" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).", + "description": "List all \"Other contacts\", that is contacts that are not in a contact group. \"Other contacts\" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).", "flatPath": "v1/otherContacts", "httpMethod": "GET", "id": "people.otherContacts.list", @@ -791,7 +791,7 @@ ] }, "listDirectoryPeople": { - "description": "Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).", + "description": "Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).", "flatPath": "v1/people:listDirectoryPeople", "httpMethod": "GET", "id": "people.people.listDirectoryPeople", @@ -1074,7 +1074,7 @@ "connections": { "methods": { "list": { - "description": "Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).", + "description": "Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).", "flatPath": "v1/people/{peopleId}/connections", "httpMethod": "GET", "id": "people.people.connections.list", @@ -1172,7 +1172,7 @@ } } }, - "revision": "20210714", + "revision": "20210720", "rootUrl": "https://people.googleapis.com/", "schemas": { "Address": { @@ -1832,13 +1832,17 @@ "id": "FieldMetadata", "properties": { "primary": { - "description": "True if the field is the primary field; false if the field is a secondary field.", + "description": "True if the field is the primary field for the person.", "type": "boolean" }, "source": { "$ref": "Source", "description": "The source of the field." }, + "sourcePrimary": { + "description": "True if the field is the primary field for the source.", + "type": "boolean" + }, "verified": { "description": "Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.", "readOnly": true, diff --git a/googleapiclient/discovery_cache/documents/playablelocations.v3.json b/googleapiclient/discovery_cache/documents/playablelocations.v3.json index b4051c619fd..d9c6603b0ae 100644 --- a/googleapiclient/discovery_cache/documents/playablelocations.v3.json +++ b/googleapiclient/discovery_cache/documents/playablelocations.v3.json @@ -146,7 +146,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://playablelocations.googleapis.com/", "schemas": { "GoogleMapsPlayablelocationsV3Impression": { diff --git a/googleapiclient/discovery_cache/documents/playcustomapp.v1.json b/googleapiclient/discovery_cache/documents/playcustomapp.v1.json index 4d8419b81e4..f7b663b5f79 100644 --- a/googleapiclient/discovery_cache/documents/playcustomapp.v1.json +++ b/googleapiclient/discovery_cache/documents/playcustomapp.v1.json @@ -158,7 +158,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://playcustomapp.googleapis.com/", "schemas": { "CustomApp": { diff --git a/googleapiclient/discovery_cache/documents/policysimulator.v1.json b/googleapiclient/discovery_cache/documents/policysimulator.v1.json index f14527d2c74..78ec7669c23 100644 --- a/googleapiclient/discovery_cache/documents/policysimulator.v1.json +++ b/googleapiclient/discovery_cache/documents/policysimulator.v1.json @@ -493,7 +493,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://policysimulator.googleapis.com/", "schemas": { "GoogleCloudPolicysimulatorV1AccessStateDiff": { diff --git a/googleapiclient/discovery_cache/documents/policysimulator.v1beta1.json b/googleapiclient/discovery_cache/documents/policysimulator.v1beta1.json index c760fd94c3c..ff09197d93e 100644 --- a/googleapiclient/discovery_cache/documents/policysimulator.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/policysimulator.v1beta1.json @@ -493,7 +493,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://policysimulator.googleapis.com/", "schemas": { "GoogleCloudPolicysimulatorV1Replay": { diff --git a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json index d5a731b548d..35d7e8bb6be 100644 --- a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json +++ b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1AccessTuple": { diff --git a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json index 986d4ceb5f7..e3dd76a5be5 100644 --- a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json +++ b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1betaAccessTuple": { diff --git a/googleapiclient/discovery_cache/documents/privateca.v1.json b/googleapiclient/discovery_cache/documents/privateca.v1.json index bf62fbc5efe..f4b09b09a5b 100644 --- a/googleapiclient/discovery_cache/documents/privateca.v1.json +++ b/googleapiclient/discovery_cache/documents/privateca.v1.json @@ -1030,7 +1030,7 @@ "type": "string" }, "requestId": { - "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he 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).", + "description": "Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1590,7 +1590,7 @@ } } }, - "revision": "20210707", + "revision": "20210714", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AccessUrls": { diff --git a/googleapiclient/discovery_cache/documents/privateca.v1beta1.json b/googleapiclient/discovery_cache/documents/privateca.v1beta1.json index 78ee3e27e88..b18bcfa502c 100644 --- a/googleapiclient/discovery_cache/documents/privateca.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/privateca.v1beta1.json @@ -1254,7 +1254,7 @@ } } }, - "revision": "20210707", + "revision": "20210721", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AccessUrls": { @@ -2823,7 +2823,7 @@ "id": "SubordinateConfig", "properties": { "certificateAuthority": { - "description": "Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`.", + "description": "Required. This can refer to a CertificateAuthority that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/certificateAuthorities/*`.", "type": "string" }, "pemIssuerChain": { diff --git a/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json b/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json index 3e121125677..fd1177af66f 100644 --- a/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json @@ -2484,7 +2484,7 @@ } } }, - "revision": "20210715", + "revision": "20210723", "rootUrl": "https://prod-tt-sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { diff --git a/googleapiclient/discovery_cache/documents/pubsub.v1.json b/googleapiclient/discovery_cache/documents/pubsub.v1.json index 3104aa06c67..5905e025585 100644 --- a/googleapiclient/discovery_cache/documents/pubsub.v1.json +++ b/googleapiclient/discovery_cache/documents/pubsub.v1.json @@ -1424,7 +1424,7 @@ } } }, - "revision": "20210705", + "revision": "20210712", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { diff --git a/googleapiclient/discovery_cache/documents/pubsub.v1beta1a.json b/googleapiclient/discovery_cache/documents/pubsub.v1beta1a.json index 1d40098e567..bb894769d28 100644 --- a/googleapiclient/discovery_cache/documents/pubsub.v1beta1a.json +++ b/googleapiclient/discovery_cache/documents/pubsub.v1beta1a.json @@ -457,7 +457,7 @@ } } }, - "revision": "20210705", + "revision": "20210712", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { diff --git a/googleapiclient/discovery_cache/documents/pubsub.v1beta2.json b/googleapiclient/discovery_cache/documents/pubsub.v1beta2.json index 4db52f58d16..b3397da4b0d 100644 --- a/googleapiclient/discovery_cache/documents/pubsub.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/pubsub.v1beta2.json @@ -724,7 +724,7 @@ } } }, - "revision": "20210705", + "revision": "20210712", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { diff --git a/googleapiclient/discovery_cache/documents/pubsublite.v1.json b/googleapiclient/discovery_cache/documents/pubsublite.v1.json index e7ed952183a..fb52f25ec14 100644 --- a/googleapiclient/discovery_cache/documents/pubsublite.v1.json +++ b/googleapiclient/discovery_cache/documents/pubsublite.v1.json @@ -690,7 +690,7 @@ } } }, - "revision": "20210712", + "revision": "20210720", "rootUrl": "https://pubsublite.googleapis.com/", "schemas": { "Capacity": { diff --git a/googleapiclient/discovery_cache/documents/realtimebidding.v1.json b/googleapiclient/discovery_cache/documents/realtimebidding.v1.json index 38a54299443..a12a76bfc22 100644 --- a/googleapiclient/discovery_cache/documents/realtimebidding.v1.json +++ b/googleapiclient/discovery_cache/documents/realtimebidding.v1.json @@ -1140,7 +1140,7 @@ } } }, - "revision": "20210717", + "revision": "20210724", "rootUrl": "https://realtimebidding.googleapis.com/", "schemas": { "ActivatePretargetingConfigRequest": { diff --git a/googleapiclient/discovery_cache/documents/realtimebidding.v1alpha.json b/googleapiclient/discovery_cache/documents/realtimebidding.v1alpha.json index ed878172c28..f20edd427f7 100644 --- a/googleapiclient/discovery_cache/documents/realtimebidding.v1alpha.json +++ b/googleapiclient/discovery_cache/documents/realtimebidding.v1alpha.json @@ -234,7 +234,7 @@ } } }, - "revision": "20210717", + "revision": "20210724", "rootUrl": "https://realtimebidding.googleapis.com/", "schemas": { "ActivateBiddingFunctionRequest": { diff --git a/googleapiclient/discovery_cache/documents/recaptchaenterprise.v1.json b/googleapiclient/discovery_cache/documents/recaptchaenterprise.v1.json index b505ba16203..0a76a21ea25 100644 --- a/googleapiclient/discovery_cache/documents/recaptchaenterprise.v1.json +++ b/googleapiclient/discovery_cache/documents/recaptchaenterprise.v1.json @@ -375,7 +375,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://recaptchaenterprise.googleapis.com/", "schemas": { "GoogleCloudRecaptchaenterpriseV1AndroidKeySettings": { diff --git a/googleapiclient/discovery_cache/documents/recommender.v1.json b/googleapiclient/discovery_cache/documents/recommender.v1.json index 262b4e83a72..d3d012009c9 100644 --- a/googleapiclient/discovery_cache/documents/recommender.v1.json +++ b/googleapiclient/discovery_cache/documents/recommender.v1.json @@ -1178,7 +1178,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudRecommenderV1CostProjection": { diff --git a/googleapiclient/discovery_cache/documents/recommender.v1beta1.json b/googleapiclient/discovery_cache/documents/recommender.v1beta1.json index c4f32a6bc62..235826fa981 100644 --- a/googleapiclient/discovery_cache/documents/recommender.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/recommender.v1beta1.json @@ -1178,7 +1178,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudRecommenderV1beta1CostProjection": { diff --git a/googleapiclient/discovery_cache/documents/reseller.v1.json b/googleapiclient/discovery_cache/documents/reseller.v1.json index ff0689bda2a..9d1e9a81925 100644 --- a/googleapiclient/discovery_cache/documents/reseller.v1.json +++ b/googleapiclient/discovery_cache/documents/reseller.v1.json @@ -111,7 +111,7 @@ "customers": { "methods": { "get": { - "description": "Get a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).", + "description": "Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).", "flatPath": "apps/reseller/v1/customers/{customerId}", "httpMethod": "GET", "id": "reseller.customers.get", @@ -136,7 +136,7 @@ ] }, "insert": { - "description": "Order a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).", + "description": "Orders a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).", "flatPath": "apps/reseller/v1/customers", "httpMethod": "POST", "id": "reseller.customers.insert", @@ -160,7 +160,7 @@ ] }, "patch": { - "description": "Update a customer account's settings. This method supports patch semantics.", + "description": "Updates a customer account's settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `\"team\"` customer can verify their domain and become `customerType = \"domain\"`. For more information, see [Verify your domain to unlock Essentials features](https://support.google.com/a/answer/9122284).", "flatPath": "apps/reseller/v1/customers/{customerId}", "httpMethod": "PATCH", "id": "reseller.customers.patch", @@ -187,7 +187,7 @@ ] }, "update": { - "description": "Update a customer account's settings. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).", + "description": "Updates a customer account's settings. You cannot update `customerType` via the Reseller API, but a `\"team\"` customer can verify their domain and become `customerType = \"domain\"`. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).", "flatPath": "apps/reseller/v1/customers/{customerId}", "httpMethod": "PUT", "id": "reseller.customers.update", @@ -311,7 +311,7 @@ ] }, "changePlan": { - "description": "Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).", + "description": "Updates a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).", "flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changePlan", "httpMethod": "POST", "id": "reseller.subscriptions.changePlan", @@ -345,7 +345,7 @@ ] }, "changeRenewalSettings": { - "description": "Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).", + "description": "Updates a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).", "flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", "httpMethod": "POST", "id": "reseller.subscriptions.changeRenewalSettings", @@ -379,7 +379,7 @@ ] }, "changeSeats": { - "description": "Update a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription\u2019s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).", + "description": "Updates a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription\u2019s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).", "flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", "httpMethod": "POST", "id": "reseller.subscriptions.changeSeats", @@ -413,7 +413,7 @@ ] }, "delete": { - "description": "Cancel, suspend, or transfer a subscription to direct.", + "description": "Cancels, suspends, or transfers a subscription to direct.", "flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", "httpMethod": "DELETE", "id": "reseller.subscriptions.delete", @@ -458,7 +458,7 @@ ] }, "get": { - "description": "Get a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).", + "description": "Gets a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).", "flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", "httpMethod": "GET", "id": "reseller.subscriptions.get", @@ -490,7 +490,7 @@ ] }, "insert": { - "description": "Create or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).", + "description": "Creates or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).", "flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions", "httpMethod": "POST", "id": "reseller.subscriptions.insert", @@ -522,7 +522,7 @@ ] }, "list": { - "description": "List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).", + "description": "Lists of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).", "flatPath": "apps/reseller/v1/subscriptions", "httpMethod": "GET", "id": "reseller.subscriptions.list", @@ -631,7 +631,7 @@ } } }, - "revision": "20210702", + "revision": "20210720", "rootUrl": "https://reseller.googleapis.com/", "schemas": { "Address": { @@ -715,7 +715,7 @@ "id": "Customer", "properties": { "alternateEmail": { - "description": "Like the \"Customer email\" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as `customerDomain`.", + "description": "Like the \"Customer email\" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new \"domain\" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a \"team\" customer.", "type": "string" }, "customerDomain": { @@ -731,7 +731,7 @@ "type": "string" }, "customerType": { - "description": "The type of the customer (DOMAIN or TEAM), default is DOMAIN.", + "description": "Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).", "enum": [ "CUSTOMER_TYPE_UNSPECIFIED", "DOMAIN", @@ -739,8 +739,8 @@ ], "enumDescriptions": [ "Customer type not known", - "Domained or domain owning customers", - "Domainless customers" + "Domained or domain-owning customers", + "Domainless or email-verified customers" ], "type": "string" }, @@ -773,7 +773,7 @@ "id": "PrimaryAdmin", "properties": { "primaryEmail": { - "description": "Primary admin's domained email This email's domain will be used to create TEAM customer", + "description": "The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.", "type": "string" } }, @@ -954,7 +954,7 @@ "description": "Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.", "properties": { "currentLegacySkuId": { - "description": "Sku id of the current resold subscription. This is populated only when customer has subscription with legacy sku and the subscription resource is populated with recommeded sku for transfer in.", + "description": "The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer.", "type": "string" }, "minimumTransferableSeats": { diff --git a/googleapiclient/discovery_cache/documents/resourcesettings.v1.json b/googleapiclient/discovery_cache/documents/resourcesettings.v1.json index f1df2d11b75..8e21d08401d 100644 --- a/googleapiclient/discovery_cache/documents/resourcesettings.v1.json +++ b/googleapiclient/discovery_cache/documents/resourcesettings.v1.json @@ -499,7 +499,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://resourcesettings.googleapis.com/", "schemas": { "GoogleCloudResourcesettingsV1ListSettingsResponse": { diff --git a/googleapiclient/discovery_cache/documents/retail.v2.json b/googleapiclient/discovery_cache/documents/retail.v2.json index 3e75f5f3989..a8b3cc790a3 100644 --- a/googleapiclient/discovery_cache/documents/retail.v2.json +++ b/googleapiclient/discovery_cache/documents/retail.v2.json @@ -111,6 +111,88 @@ "resources": { "catalogs": { "methods": { + "completeQuery": { + "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.completeQuery", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + }, + "dataset": { + "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail This option is not automatically enabled. Before using cloud-retail, contact retail-search-support@google.com first.", + "location": "query", + "type": "string" + }, + "deviceType": { + "description": "The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. DESKTOP, MOBILE. If it is empty, the suggestions are across all device types. Supported formats: * UNKNOWN_DEVICE_TYPE * DESKTOP * MOBILE * A customized string starts with OTHER_, e.g. OTHER_IPHONE.", + "location": "query", + "type": "string" + }, + "languageCodes": { + "description": "The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only \"en-US\" is currently supported.", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxSuggestions": { + "description": "Completion max suggestions. The maximum allowed max suggestions is 20. The default value is 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "query": { + "description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.", + "location": "query", + "type": "string" + }, + "visitorId": { + "description": "A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+catalog}:completeQuery", + "response": { + "$ref": "GoogleCloudRetailV2CompleteQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDefaultBranch": { + "description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getDefaultBranch", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+catalog}:getDefaultBranch", + "response": { + "$ref": "GoogleCloudRetailV2GetDefaultBranchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all the Catalogs associated with the project.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs", @@ -180,6 +262,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "setDefaultBranch": { + "description": "Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using \"default_branch\" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:setDefaultBranch", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.setDefaultBranch", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+catalog}:setDefaultBranch", + "request": { + "$ref": "GoogleCloudRetailV2SetDefaultBranchRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -216,6 +326,34 @@ }, "products": { "methods": { + "addFulfillmentPlaces": { + "description": "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+product}:addFulfillmentPlaces", + "request": { + "$ref": "GoogleCloudRetailV2AddFulfillmentPlacesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Product.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", @@ -327,6 +465,53 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Gets a list of Products.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.branches.products.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = \"some_product_id\"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = \"some_product_id\"` * List Products with a partibular type. For example: `type = \"PRIMARY\"` `type = \"VARIANT\"` `type = \"COLLECTION\"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", + "required": true, + "type": "string" + }, + "readMask": { + "description": "The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If \"*\" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/products", + "response": { + "$ref": "GoogleCloudRetailV2ListProductsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a Product.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", @@ -365,11 +550,99 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "removeFulfillmentPlaces": { + "description": "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+product}:removeFulfillmentPlaces", + "request": { + "$ref": "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setInventory": { + "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.setInventory", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:setInventory", + "request": { + "$ref": "GoogleCloudRetailV2SetInventoryRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } } }, + "completionData": { + "methods": { + "import": { + "description": "Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.completionData.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/completionData:import", + "request": { + "$ref": "GoogleCloudRetailV2ImportCompletionDataRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -469,6 +742,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "search": { + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.placements.search", + "parameterOrder": [ + "placement" + ], + "parameters": { + "placement": { + "description": "Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the set of models that will be used to make the search. We currently support one placement with the following ID: * `default_search`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+placement}:search", + "request": { + "$ref": "GoogleCloudRetailV2SearchRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2SearchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -706,7 +1007,7 @@ } } }, - "revision": "20210709", + "revision": "20210723", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -859,12 +1160,72 @@ }, "type": "object" }, + "GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AddFulfillmentPlacesRequest": { + "description": "Request message for AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesRequest", + "properties": { + "addTime": { + "description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "allowMissing": { + "description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2AddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2Audience": { + "description": "An intended audience of the Product for whom it's sold.", + "id": "GoogleCloudRetailV2Audience", + "properties": { + "ageGroups": { + "description": "The age groups of the audience. Strongly encouraged to use the standard values: \"newborn\" (up to 3 months old), \"infant\" (3\u201312 months old), \"toddler\" (1\u20135 years old), \"kids\" (5\u201313 years old), \"adult\" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).", + "items": { + "type": "string" + }, + "type": "array" + }, + "genders": { + "description": "The genders of the audience. Strongly encouraged to use the standard values: \"male\", \"female\", \"unisex\". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2BigQuerySource": { "description": "BigQuery source import data from.", "id": "GoogleCloudRetailV2BigQuerySource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.", "type": "string" }, "datasetId": { @@ -875,6 +1236,10 @@ "description": "Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", "type": "string" }, + "partitionDate": { + "$ref": "GoogleTypeDate", + "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`." + }, "projectId": { "description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", "type": "string" @@ -905,20 +1270,19 @@ }, "type": "object" }, - "GoogleCloudRetailV2CustomAttribute": { - "description": "A custom attribute that is not explicitly modeled in Product.", - "id": "GoogleCloudRetailV2CustomAttribute", + "GoogleCloudRetailV2ColorInfo": { + "description": "The color information of a Product.", + "id": "GoogleCloudRetailV2ColorInfo", "properties": { - "numbers": { - "description": "The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is \"lengths_cm\". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", + "colorFamilies": { + "description": "The standard color families. Strongly recommended to use the following standard color groups: \"Red\", \"Pink\", \"Orange\", \"Yellow\", \"Purple\", \"Green\", \"Cyan\", \"Blue\", \"Brown\", \"White\", \"Gray\", \"Black\" and \"Mixed\". Normally it is expected to have only 1 color family. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", "items": { - "format": "double", - "type": "number" + "type": "string" }, "type": "array" }, - "text": { - "description": "The textual values of this custom attribute. For example, `[\"yellow\", \"green\"]` when the key is \"color\". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", + "colors": { + "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", "items": { "type": "string" }, @@ -927,12 +1291,145 @@ }, "type": "object" }, - "GoogleCloudRetailV2GcsSource": { - "description": "Google Cloud Storage location for input content. format.", - "id": "GoogleCloudRetailV2GcsSource", + "GoogleCloudRetailV2CompleteQueryResponse": { + "description": "Response of the auto-complete query.", + "id": "GoogleCloudRetailV2CompleteQueryResponse", + "properties": { + "attributionToken": { + "description": "A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.", + "type": "string" + }, + "completionResults": { + "description": "Results of the matching suggestions. The result list is ordered and the first result is top suggestion.", + "items": { + "$ref": "GoogleCloudRetailV2CompleteQueryResponseCompletionResult" + }, + "type": "array" + }, + "recentSearchResults": { + "description": "Matched recent searches of this user. This field is a restricted feature. Contact Retail Support (retail-search-support@google.com) 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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "items": { + "$ref": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2CompleteQueryResponseCompletionResult": { + "description": "Resource that represents completion results.", + "id": "GoogleCloudRetailV2CompleteQueryResponseCompletionResult", + "properties": { + "attributes": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2CustomAttribute" + }, + "description": "Additional custom attributes ingested through BigQuery.", + "type": "object" + }, + "suggestion": { + "description": "The suggestion for the query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult": { + "description": "Recent search of this user.", + "id": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult", + "properties": { + "recentSearch": { + "description": "The recent search query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2CompletionDataInputConfig": { + "description": "The input config source for completion data.", + "id": "GoogleCloudRetailV2CompletionDataInputConfig", + "properties": { + "bigQuerySource": { + "$ref": "GoogleCloudRetailV2BigQuerySource", + "description": "Required. BigQuery input source. Add the IAM permission \u201cBigQuery Data Viewer\u201d for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2CompletionDetail": { + "description": "Detailed completion information including completion attribution token and clicked completion info.", + "id": "GoogleCloudRetailV2CompletionDetail", + "properties": { + "completionAttributionToken": { + "description": "Completion attribution token in CompleteQueryResponse.attribution_token.", + "type": "string" + }, + "selectedPosition": { + "description": "End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0.", + "format": "int32", + "type": "integer" + }, + "selectedSuggestion": { + "description": "End user selected CompleteQueryResponse.CompletionResult.suggestion.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2CustomAttribute": { + "description": "A custom attribute that is not explicitly modeled in Product.", + "id": "GoogleCloudRetailV2CustomAttribute", + "properties": { + "indexable": { + "description": "If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", + "type": "boolean" + }, + "numbers": { + "description": "The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is \"lengths_cm\". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "searchable": { + "description": "If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", + "type": "boolean" + }, + "text": { + "description": "The textual values of this custom attribute. For example, `[\"yellow\", \"green\"]` when the key is \"color\". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2FulfillmentInfo": { + "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.", + "id": "GoogleCloudRetailV2FulfillmentInfo", + "properties": { + "placeIds": { + "description": "The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2GcsSource": { + "description": "Google Cloud Storage location for input content. format.", + "id": "GoogleCloudRetailV2GcsSource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.", "type": "string" }, "inputUris": { @@ -945,6 +1442,26 @@ }, "type": "object" }, + "GoogleCloudRetailV2GetDefaultBranchResponse": { + "description": "Response message of CatalogService.GetDefaultBranch.", + "id": "GoogleCloudRetailV2GetDefaultBranchResponse", + "properties": { + "branch": { + "description": "Full resource name of the branch id currently set as default branch.", + "type": "string" + }, + "note": { + "description": "This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.", + "type": "string" + }, + "setTime": { + "description": "The time when this branch is set to default.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2Image": { "description": "Product thumbnail/detail image.", "id": "GoogleCloudRetailV2Image", @@ -966,6 +1483,35 @@ }, "type": "object" }, + "GoogleCloudRetailV2ImportCompletionDataRequest": { + "description": "Request message for ImportCompletionData methods.", + "id": "GoogleCloudRetailV2ImportCompletionDataRequest", + "properties": { + "inputConfig": { + "$ref": "GoogleCloudRetailV2CompletionDataInputConfig", + "description": "Required. The desired input location of the data." + }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2ImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2ImportErrorsConfig", @@ -991,6 +1537,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -1016,6 +1570,28 @@ "$ref": "GoogleCloudRetailV2ProductInputConfig", "description": "Required. The desired input location of the data." }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "string" + }, + "reconciliationMode": { + "description": "The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL.", + "enum": [ + "RECONCILIATION_MODE_UNSPECIFIED", + "INCREMENTAL", + "FULL" + ], + "enumDescriptions": [ + "Defaults to INCREMENTAL.", + "Inserts new products or updates existing products.", + "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location. Can only be while using BigQuerySource. Add the IAM permission \u201cBigQuery Data Viewer\u201d for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search." + ], + "type": "string" + }, + "requestId": { + "description": "Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: \"[a-zA-Z0-9_]+\". This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "string" + }, "updateMask": { "description": "Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields.", "format": "google-fieldmask", @@ -1079,6 +1655,33 @@ }, "type": "object" }, + "GoogleCloudRetailV2Interval": { + "description": "A floating point interval.", + "id": "GoogleCloudRetailV2Interval", + "properties": { + "exclusiveMaximum": { + "description": "Exclusive upper bound.", + "format": "double", + "type": "number" + }, + "exclusiveMinimum": { + "description": "Exclusive lower bound.", + "format": "double", + "type": "number" + }, + "maximum": { + "description": "Inclusive upper bound.", + "format": "double", + "type": "number" + }, + "minimum": { + "description": "Inclusive lower bound.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ListCatalogsResponse": { "description": "Response for CatalogService.ListCatalogs method.", "id": "GoogleCloudRetailV2ListCatalogsResponse", @@ -1097,6 +1700,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2ListProductsResponse": { + "description": "Response message for ProductService.ListProducts method.", + "id": "GoogleCloudRetailV2ListProductsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "products": { + "description": "The Products.", + "items": { + "$ref": "GoogleCloudRetailV2Product" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2PredictRequest": { "description": "Request message for Predict method.", "id": "GoogleCloudRetailV2PredictRequest", @@ -1196,7 +1817,7 @@ "type": "number" }, "currencyCode": { - "description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.", + "description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.", "type": "string" }, "originalPrice": { @@ -1208,6 +1829,36 @@ "description": "Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).", "format": "float", "type": "number" + }, + "priceEffectiveTime": { + "description": "The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.", + "format": "google-datetime", + "type": "string" + }, + "priceExpireTime": { + "description": "The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.", + "format": "google-datetime", + "type": "string" + }, + "priceRange": { + "$ref": "GoogleCloudRetailV2PriceInfoPriceRange", + "description": "Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRetailV2PriceInfoPriceRange": { + "description": "The price range of all variant Product having the same Product.primary_product_id.", + "id": "GoogleCloudRetailV2PriceInfoPriceRange", + "properties": { + "originalPrice": { + "$ref": "GoogleCloudRetailV2Interval", + "description": "The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id." + }, + "price": { + "$ref": "GoogleCloudRetailV2Interval", + "description": "The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id." } }, "type": "object" @@ -1220,9 +1871,13 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2CustomAttribute" }, - "description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.", + "description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.", "type": "object" }, + "audience": { + "$ref": "GoogleCloudRetailV2Audience", + "description": "The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product." + }, "availability": { "description": "The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).", "enum": [ @@ -1247,10 +1902,17 @@ "type": "integer" }, "availableTime": { - "description": "The timestamp when this Product becomes available for recommendation.", + "description": "The timestamp when this Product becomes available for SearchService.Search.", "format": "google-datetime", "type": "string" }, + "brands": { + "description": "The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", + "items": { + "type": "string" + }, + "type": "array" + }, "categories": { "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { @@ -1258,10 +1920,44 @@ }, "type": "array" }, + "collectionMemberIds": { + "description": "The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", + "items": { + "type": "string" + }, + "type": "array" + }, + "colorInfo": { + "$ref": "GoogleCloudRetailV2ColorInfo", + "description": "The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color)." + }, + "conditions": { + "description": "The condition of the product. Strongly encouraged to use the standard values: \"new\", \"refurbished\", \"used\". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).", + "items": { + "type": "string" + }, + "type": "array" + }, "description": { "description": "Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).", "type": "string" }, + "expireTime": { + "description": "The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", + "format": "google-datetime", + "type": "string" + }, + "fulfillmentInfo": { + "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "$ref": "GoogleCloudRetailV2FulfillmentInfo" + }, + "type": "array" + }, + "gtin": { + "description": "The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, "id": { "description": "Immutable. Product identifier, which is the final component of name. For example, this field is \"id_1\", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).", "type": "string" @@ -1273,10 +1969,28 @@ }, "type": "array" }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", + "type": "string" + }, + "materials": { + "description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", + "items": { + "type": "string" + }, + "type": "array" + }, "name": { "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", "type": "string" }, + "patterns": { + "description": "The pattern or graphic print of the product. For example, \"striped\", \"polka dot\", \"paisley\". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).", + "items": { + "type": "string" + }, + "type": "array" + }, "priceInfo": { "$ref": "GoogleCloudRetailV2PriceInfo", "description": "Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." @@ -1285,6 +1999,34 @@ "description": "Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).", "type": "string" }, + "promotions": { + "description": "The promotions applied to the product. A maximum of 10 values are allowed per Product.", + "items": { + "$ref": "GoogleCloudRetailV2Promotion" + }, + "type": "array" + }, + "publishTime": { + "description": "The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.", + "format": "google-datetime", + "type": "string" + }, + "rating": { + "$ref": "GoogleCloudRetailV2Rating", + "description": "The rating of this product." + }, + "retrievableFields": { + "description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "google-fieldmask", + "type": "string" + }, + "sizes": { + "description": "The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in \"US:MENS:M\", \"US\" represents size system; \"MENS\" represents size type; \"M\" represents size value. In \"GIRLS:27\", size system is empty; \"GIRLS\" represents size type; \"27\" represents size value. In \"32 inches\", both size system and size type are empty, while size value is \"32 inches\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).", + "items": { + "type": "string" + }, + "type": "array" + }, "tags": { "description": "Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0\u20134](https://support.google.com/merchants/answer/6324473).", "items": { @@ -1296,6 +2038,11 @@ "description": "Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).", "type": "string" }, + "ttl": { + "description": "Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", + "format": "google-duration", + "type": "string" + }, "type": { "description": "Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.", "enum": [ @@ -1310,179 +2057,676 @@ "The variant type. Type.VARIANT Products usually share some common attributes on the same Type.PRIMARY Products, but they have variant attributes like different colors, sizes and prices, etc.", "The collection type. Collection products are bundled Type.PRIMARY Products or Type.VARIANT Products that are sold together, such as a jewelry set with necklaces, earrings and rings, etc." ], - "type": "string" - }, - "uri": { - "description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", + "type": "string" + }, + "uri": { + "description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", + "type": "string" + }, + "variants": { + "description": "Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", + "items": { + "$ref": "GoogleCloudRetailV2Product" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ProductDetail": { + "description": "Detailed product information associated with a user event.", + "id": "GoogleCloudRetailV2ProductDetail", + "properties": { + "product": { + "$ref": "GoogleCloudRetailV2Product", + "description": "Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog." + }, + "quantity": { + "description": "Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ProductInlineSource": { + "description": "The inline source for the input config for ImportProducts method.", + "id": "GoogleCloudRetailV2ProductInlineSource", + "properties": { + "products": { + "description": "Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.", + "items": { + "$ref": "GoogleCloudRetailV2Product" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ProductInputConfig": { + "description": "The input config source for products.", + "id": "GoogleCloudRetailV2ProductInputConfig", + "properties": { + "bigQuerySource": { + "$ref": "GoogleCloudRetailV2BigQuerySource", + "description": "BigQuery input source." + }, + "gcsSource": { + "$ref": "GoogleCloudRetailV2GcsSource", + "description": "Google Cloud Storage location for the input content." + }, + "productInlineSource": { + "$ref": "GoogleCloudRetailV2ProductInlineSource", + "description": "The Inline source for the input content for products." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ProductLevelConfig": { + "description": "Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made.", + "id": "GoogleCloudRetailV2ProductLevelConfig", + "properties": { + "ingestionProductType": { + "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "type": "string" + }, + "merchantCenterProductIdField": { + "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2Promotion": { + "description": "Promotion information.", + "id": "GoogleCloudRetailV2Promotion", + "properties": { + "promotionId": { + "description": "ID of the promotion. For example, \"free gift\". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2PurchaseTransaction": { + "description": "A transaction represents the entire purchase transaction.", + "id": "GoogleCloudRetailV2PurchaseTransaction", + "properties": { + "cost": { + "description": "All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost", + "format": "float", + "type": "number" + }, + "currencyCode": { + "description": "Required. Currency code. Use three-character ISO-4217 code.", + "type": "string" + }, + "id": { + "description": "The transaction ID with a length limit of 128 characters.", + "type": "string" + }, + "revenue": { + "description": "Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.", + "format": "float", + "type": "number" + }, + "tax": { + "description": "All the taxes associated with the transaction.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2PurgeMetadata": { + "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2PurgeMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2PurgeUserEventsRequest": { + "description": "Request message for PurgeUserEvents method.", + "id": "GoogleCloudRetailV2PurgeUserEventsRequest", + "properties": { + "filter": { + "description": "Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Deleting specific eventType in time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = \"detail-page-view\"` * Deleting all events for a specific visitor: `visitorId = \"visitor1024\"` The filtering fields are assumed to have an implicit AND.", + "type": "string" + }, + "force": { + "description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2PurgeUserEventsResponse": { + "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2PurgeUserEventsResponse", + "properties": { + "purgedEventsCount": { + "description": "The total count of events purged as a result of the operation.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2Rating": { + "description": "The rating of a Product.", + "id": "GoogleCloudRetailV2Rating", + "properties": { + "averageRating": { + "description": "The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "float", + "type": "number" + }, + "ratingCount": { + "description": "The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "type": "integer" + }, + "ratingHistogram": { + "description": "List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RejoinUserEventsMetadata": { + "description": "Metadata for RejoinUserEvents method.", + "id": "GoogleCloudRetailV2RejoinUserEventsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RejoinUserEventsRequest": { + "description": "Request message for RejoinUserEvents method.", + "id": "GoogleCloudRetailV2RejoinUserEventsRequest", + "properties": { + "userEventRejoinScope": { + "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", + "enum": [ + "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", + "JOINED_EVENTS", + "UNJOINED_EVENTS" + ], + "enumDescriptions": [ + "Rejoin all events with the latest product catalog, including both joined events and unjoined events.", + "Only rejoin joined events with the latest product catalog.", + "Only rejoin unjoined events with the latest product catalog." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RejoinUserEventsResponse": { + "description": "Response message for RejoinUserEvents method.", + "id": "GoogleCloudRetailV2RejoinUserEventsResponse", + "properties": { + "rejoinedUserEventsCount": { + "description": "Number of user events that were joined with latest product catalog.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest": { + "description": "Request message for RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeTime": { + "description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "type": { + "description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequest": { + "description": "Request message for SearchService.Search method.", + "id": "GoogleCloudRetailV2SearchRequest", + "properties": { + "boostSpec": { + "$ref": "GoogleCloudRetailV2SearchRequestBoostSpec", + "description": "Boost specification to boost certain products. See more details at this [user guide](/retail/private/docs/boosting)." + }, + "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 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.", + "type": "string" + }, + "dynamicFacetSpec": { + "$ref": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", + "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature." + }, + "facetSpecs": { + "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "$ref": "GoogleCloudRetailV2SearchRequestFacetSpec" + }, + "type": "array" + }, + "filter": { + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](/retail/private/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "type": "string" + }, + "offset": { + "description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + }, + "orderBy": { + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](/retail/private/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "type": "string" + }, + "pageCategories": { + "description": "The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "pageSize": { + "description": "Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "query": { + "description": "Raw search query.", + "type": "string" + }, + "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](/retail/private/docs/result-size#query_expansion)." + }, + "userInfo": { + "$ref": "GoogleCloudRetailV2UserInfo", + "description": "User information." + }, + "variantRollupKeys": { + "description": "The keys to fetch and rollup the matching variant Products attributes. The attributes from all the matching variant Products are merged and de-duplicated. Notice that rollup variant Products attributes will lead to extra query latency. Maximum number of keys is 10. For Product.fulfillment_info, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.filfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. * shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * customFulfillment1.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. * customFulfillment3.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. * customFulfillment5.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "visitorId": { + "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequestBoostSpec": { + "description": "Boost specification to boost certain items.", + "id": "GoogleCloudRetailV2SearchRequestBoostSpec", + "properties": { + "conditionBoostSpecs": { + "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.", + "items": { + "$ref": "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec": { + "description": "Boost applies to products which match a condition.", + "id": "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec", + "properties": { + "boost": { + "description": "Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", + "format": "float", + "type": "number" + }, + "condition": { + "description": "An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequestDynamicFacetSpec": { + "description": "The specifications of dynamically generated facets.", + "id": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", + "properties": { + "mode": { + "description": "Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "Default value.", + "Disable Dynamic Facet.", + "Automatic mode built by Google Retail Search." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequestFacetSpec": { + "description": "A facet specification to perform faceted search.", + "id": "GoogleCloudRetailV2SearchRequestFacetSpec", + "properties": { + "enableDynamicPosition": { + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It 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.", + "type": "boolean" + }, + "excludedFilterKeys": { + "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet \"Red\" and 200 products with color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and have \"colorFamilies\" as FacetKey.key will by default return the \"Red\" with count 100. If this field contains \"colorFamilies\", then the query returns both the \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "facetKey": { + "$ref": "GoogleCloudRetailV2SearchRequestFacetSpecFacetKey", + "description": "Required. The facet key specification." + }, + "limit": { + "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequestFacetSpecFacetKey": { + "description": "Specifies how a facet is computed.", + "id": "GoogleCloudRetailV2SearchRequestFacetSpecFacetKey", + "properties": { + "contains": { + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intervals": { + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 30.", + "items": { + "$ref": "GoogleCloudRetailV2Interval" + }, + "type": "array" + }, + "key": { + "description": "Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = *# The Product.brands. * \"brands\"; *# The Product.categories. * \"categories\"; *# The Audience.genders. * | \"genders\"; *# The Audience.age_groups. * | \"ageGroups\"; *# The Product.availability. Value is one of * *# \"IN_STOCK\", \"OUT_OF_STOCK\", PREORDER\", \"BACKORDER\". * | \"availability\"; *# The ColorInfo.color_families. * | \"colorFamilies\"; *# The ColorInfo.colors. * | \"colors\"; *# The Product.sizes. * | \"sizes\"; *# The Product.materials. * | \"materials\"; *# The Product.patterns. * | \"patterns\"; *# The Product.conditions. * | \"conditions\"; *# The textual custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are textual. * *# map. * | \"attributes.key\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.PICKUP_IN_STORE. * | \"pickupInStore\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SHIP_TO_STORE. * | \"shipToStore\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | \"sameDayDelivery\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * | \"nextDayDelivery\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_1. * | \"customFulfillment1\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | \"customFulfillment2\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | \"customFulfillment3\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_4. * | \"customFulfillment4\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | \"customFulfillment5\"; * numerical_field = *# The PriceInfo.price. * \"price\"; *# The discount. Computed by (original_price-price)/price * \"discount\"; *# The Rating.average_rating. * \"rating\"; *# The Rating.rating_count. * \"ratingCount\"; *# The numerical custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are numerical. * | \"attributes.key\";", + "type": "string" + }, + "orderBy": { + "description": "The order in which Facet.values are returned. Allowed values are: * \"count desc\", which means order by Facet.FacetValue.count descending. * \"value desc\", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", + "type": "string" + }, + "prefixes": { + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "description": "The query that is used to compute facet for the given facet key. When provided, it 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, FacetValue.value will be always \"1\" and FacetValue.count will be the number of results that matches 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\".", + "type": "string" + }, + "restrictedValues": { + "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2SearchRequestQueryExpansionSpec": { + "description": "Specification to determine under which conditions query expansion should occur.", + "id": "GoogleCloudRetailV2SearchRequestQueryExpansionSpec", + "properties": { + "condition": { + "description": "The condition under which query expansion should occur. Default to Condition.DISABLED.", + "enum": [ + "CONDITION_UNSPECIFIED", + "DISABLED", + "AUTO" + ], + "enumDescriptions": [ + "Unspecified query expansion condition. This defaults to Condition.DISABLED.", + "Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", + "Automatic query expansion built by Google Retail Search." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2ProductDetail": { - "description": "Detailed product information associated with a user event.", - "id": "GoogleCloudRetailV2ProductDetail", + "GoogleCloudRetailV2SearchResponse": { + "description": "Response message for SearchService.Search method.", + "id": "GoogleCloudRetailV2SearchResponse", "properties": { - "product": { - "$ref": "GoogleCloudRetailV2Product", - "description": "Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog." + "attributionToken": { + "description": "A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.", + "type": "string" }, - "quantity": { - "description": "Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.", + "correctedQuery": { + "description": "If spell correction applies, the corrected query. Otherwise, empty.", + "type": "string" + }, + "facets": { + "description": "Results of facets requested by user.", + "items": { + "$ref": "GoogleCloudRetailV2SearchResponseFacet" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "queryExpansionInfo": { + "$ref": "GoogleCloudRetailV2SearchResponseQueryExpansionInfo", + "description": "Query expansion information for the returned results." + }, + "redirectUri": { + "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.", + "type": "string" + }, + "results": { + "description": "A list of matched items. The order represents the ranking.", + "items": { + "$ref": "GoogleCloudRetailV2SearchResponseSearchResult" + }, + "type": "array" + }, + "totalSize": { + "description": "The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.", "format": "int32", "type": "integer" } }, "type": "object" }, - "GoogleCloudRetailV2ProductInlineSource": { - "description": "The inline source for the input config for ImportProducts method.", - "id": "GoogleCloudRetailV2ProductInlineSource", + "GoogleCloudRetailV2SearchResponseFacet": { + "description": "A facet result.", + "id": "GoogleCloudRetailV2SearchResponseFacet", "properties": { - "products": { - "description": "Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.", + "dynamicFacet": { + "description": "Whether the facet is dynamically generated.", + "type": "boolean" + }, + "key": { + "description": "The key for this facet. E.g., \"colorFamilies\" or \"price\" or \"attributes.attr1\".", + "type": "string" + }, + "values": { + "description": "The facet values for this field.", "items": { - "$ref": "GoogleCloudRetailV2Product" + "$ref": "GoogleCloudRetailV2SearchResponseFacetFacetValue" }, "type": "array" } }, "type": "object" }, - "GoogleCloudRetailV2ProductInputConfig": { - "description": "The input config source for products.", - "id": "GoogleCloudRetailV2ProductInputConfig", + "GoogleCloudRetailV2SearchResponseFacetFacetValue": { + "description": "A facet value which contains value names and their count.", + "id": "GoogleCloudRetailV2SearchResponseFacetFacetValue", "properties": { - "bigQuerySource": { - "$ref": "GoogleCloudRetailV2BigQuerySource", - "description": "BigQuery input source." + "count": { + "description": "Number of items that have this facet value.", + "format": "int64", + "type": "string" }, - "gcsSource": { - "$ref": "GoogleCloudRetailV2GcsSource", - "description": "Google Cloud Storage location for the input content." + "interval": { + "$ref": "GoogleCloudRetailV2Interval", + "description": "Interval value for a facet, such as [10, 20) for facet \"price\"." }, - "productInlineSource": { - "$ref": "GoogleCloudRetailV2ProductInlineSource", - "description": "The Inline source for the input content for products." + "value": { + "description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", + "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2ProductLevelConfig": { - "description": "Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made.", - "id": "GoogleCloudRetailV2ProductLevelConfig", + "GoogleCloudRetailV2SearchResponseQueryExpansionInfo": { + "description": "Information describing query expansion including whether expansion has occurred.", + "id": "GoogleCloudRetailV2SearchResponseQueryExpansionInfo", "properties": { - "ingestionProductType": { - "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", - "type": "string" - }, - "merchantCenterProductIdField": { - "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", - "type": "string" + "expandedQuery": { + "description": "Bool describing whether query expansion has occurred.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudRetailV2PurchaseTransaction": { - "description": "A transaction represents the entire purchase transaction.", - "id": "GoogleCloudRetailV2PurchaseTransaction", + "GoogleCloudRetailV2SearchResponseSearchResult": { + "description": "Represents the search results.", + "id": "GoogleCloudRetailV2SearchResponseSearchResult", "properties": { - "cost": { - "description": "All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost", - "format": "float", - "type": "number" - }, - "currencyCode": { - "description": "Required. Currency code. Use three-character ISO-4217 code.", - "type": "string" - }, "id": { - "description": "The transaction ID with a length limit of 128 characters.", + "description": "Product.id of the searched Product.", "type": "string" }, - "revenue": { - "description": "Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.", - "format": "float", - "type": "number" + "matchingVariantCount": { + "description": "The count of matched variant Products.", + "format": "int32", + "type": "integer" }, - "tax": { - "description": "All the taxes associated with the transaction.", - "format": "float", - "type": "number" + "matchingVariantFields": { + "additionalProperties": { + "format": "google-fieldmask", + "type": "string" + }, + "description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", + "type": "object" + }, + "product": { + "$ref": "GoogleCloudRetailV2Product", + "description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." + }, + "variantRollupValues": { + "additionalProperties": { + "type": "any" + }, + "description": "The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by \"colorFamilies:ANY(\\\"red\\\")\" and rollup \"colorFamilies\", only \"red\" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors \"red\" and \"blue\", the rollup values are { key: \"colorFamilies\" value { list_value { values { string_value: \"red\" } values { string_value: \"blue\" } } } } For Product.fulfillment_info, the rollup values is a double value with type google.protobuf.Value. For example, {key: \"pickupInStore.store1\" value { number_value: 10 }} means a there are 10 variants in this product are available in the store \"store1\".", + "type": "object" } }, "type": "object" }, - "GoogleCloudRetailV2PurgeMetadata": { - "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", - "id": "GoogleCloudRetailV2PurgeMetadata", - "properties": {}, - "type": "object" - }, - "GoogleCloudRetailV2PurgeUserEventsRequest": { - "description": "Request message for PurgeUserEvents method.", - "id": "GoogleCloudRetailV2PurgeUserEventsRequest", + "GoogleCloudRetailV2SetDefaultBranchRequest": { + "description": "Request message to set a specified branch as new default_branch.", + "id": "GoogleCloudRetailV2SetDefaultBranchRequest", "properties": { - "filter": { - "description": "Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Deleting specific eventType in time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = \"detail-page-view\"` * Deleting all events for a specific visitor: `visitorId = \"visitor1024\"` The filtering fields are assumed to have an implicit AND.", + "branchId": { + "description": "The final component of the resource name of a branch. This field must be one of \"0\", \"1\" or \"2\". Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" }, - "force": { - "description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.", - "type": "boolean" - } - }, - "type": "object" - }, - "GoogleCloudRetailV2PurgeUserEventsResponse": { - "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", - "id": "GoogleCloudRetailV2PurgeUserEventsResponse", - "properties": { - "purgedEventsCount": { - "description": "The total count of events purged as a result of the operation.", - "format": "int64", + "note": { + "description": "Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2RejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", - "id": "GoogleCloudRetailV2RejoinUserEventsMetadata", + "GoogleCloudRetailV2SetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryMetadata", "properties": {}, "type": "object" }, - "GoogleCloudRetailV2RejoinUserEventsRequest": { - "description": "Request message for RejoinUserEvents method.", - "id": "GoogleCloudRetailV2RejoinUserEventsRequest", + "GoogleCloudRetailV2SetInventoryRequest": { + "description": "Request message for SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryRequest", "properties": { - "userEventRejoinScope": { - "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", - "enum": [ - "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", - "JOINED_EVENTS", - "UNJOINED_EVENTS" - ], - "enumDescriptions": [ - "Rejoin all events with the latest product catalog, including both joined events and unjoined events.", - "Only rejoin joined events with the latest product catalog.", - "Only rejoin unjoined events with the latest product catalog." - ], + "allowMissing": { + "description": "If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "inventory": { + "$ref": "GoogleCloudRetailV2Product", + "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead." + }, + "setMask": { + "description": "Indicates which inventory fields in the provided Product to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", + "format": "google-fieldmask", + "type": "string" + }, + "setTime": { + "description": "The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.", + "format": "google-datetime", "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2RejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", - "id": "GoogleCloudRetailV2RejoinUserEventsResponse", - "properties": { - "rejoinedUserEventsCount": { - "description": "Number of user events that were joined with latest product catalog.", - "format": "int64", - "type": "string" - } - }, + "GoogleCloudRetailV2SetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryResponse", + "properties": {}, "type": "object" }, "GoogleCloudRetailV2UserEvent": { @@ -1497,13 +2741,17 @@ "type": "object" }, "attributionToken": { - "description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", + "description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", "type": "string" }, "cartId": { "description": "The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.", "type": "string" }, + "completionDetail": { + "$ref": "GoogleCloudRetailV2CompletionDetail", + "description": "The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion." + }, "eventTime": { "description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", "format": "google-datetime", @@ -1520,6 +2768,19 @@ }, "type": "array" }, + "filter": { + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "offset": { + "description": "An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "type": "integer" + }, + "orderBy": { + "description": "The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, "pageCategories": { "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1547,7 +2808,11 @@ "type": "string" }, "searchQuery": { - "description": "The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "sessionId": { + "description": "A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix.", "type": "string" }, "uri": { @@ -1624,11 +2889,11 @@ "type": "boolean" }, "ipAddress": { - "description": "The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userAgent": { - "description": "User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userId": { @@ -1638,6 +2903,18 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2alphaExportErrorsConfig", @@ -1702,6 +2979,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2alphaImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2alphaImportErrorsConfig", @@ -1727,6 +3018,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -1816,6 +3115,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaSetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaSetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2alphaUserEventImportSummary", @@ -1833,6 +3156,18 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2betaExportErrorsConfig", @@ -1897,6 +3232,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2betaImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2betaImportErrorsConfig", @@ -1922,6 +3271,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -2011,6 +3368,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2betaUserEventImportSummary", @@ -2113,6 +3494,28 @@ } }, "type": "object" + }, + "GoogleTypeDate": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.", + "id": "GoogleTypeDate", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/googleapiclient/discovery_cache/documents/retail.v2alpha.json b/googleapiclient/discovery_cache/documents/retail.v2alpha.json index aa42ed6a625..a82ccaacf13 100644 --- a/googleapiclient/discovery_cache/documents/retail.v2alpha.json +++ b/googleapiclient/discovery_cache/documents/retail.v2alpha.json @@ -111,6 +111,88 @@ "resources": { "catalogs": { "methods": { + "completeQuery": { + "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.completeQuery", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + }, + "dataset": { + "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail This option is not automatically enabled. Before using cloud-retail, contact retail-search-support@google.com first.", + "location": "query", + "type": "string" + }, + "deviceType": { + "description": "The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. DESKTOP, MOBILE. If it is empty, the suggestions are across all device types. Supported formats: * UNKNOWN_DEVICE_TYPE * DESKTOP * MOBILE * A customized string starts with OTHER_, e.g. OTHER_IPHONE.", + "location": "query", + "type": "string" + }, + "languageCodes": { + "description": "The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only \"en-US\" is currently supported.", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxSuggestions": { + "description": "Completion max suggestions. The maximum allowed max suggestions is 20. The default value is 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "query": { + "description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.", + "location": "query", + "type": "string" + }, + "visitorId": { + "description": "A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "location": "query", + "type": "string" + } + }, + "path": "v2alpha/{+catalog}:completeQuery", + "response": { + "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDefaultBranch": { + "description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getDefaultBranch", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+catalog}:getDefaultBranch", + "response": { + "$ref": "GoogleCloudRetailV2alphaGetDefaultBranchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all the Catalogs associated with the project.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs", @@ -180,6 +262,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "setDefaultBranch": { + "description": "Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using \"default_branch\" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:setDefaultBranch", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.setDefaultBranch", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+catalog}:setDefaultBranch", + "request": { + "$ref": "GoogleCloudRetailV2alphaSetDefaultBranchRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -216,6 +326,34 @@ }, "products": { "methods": { + "addFulfillmentPlaces": { + "description": "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+product}:addFulfillmentPlaces", + "request": { + "$ref": "GoogleCloudRetailV2alphaAddFulfillmentPlacesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Product.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", @@ -327,6 +465,58 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Gets a list of Products.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.branches.products.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = \"some_product_id\"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = \"some_product_id\"` * List Products with a partibular type. For example: `type = \"PRIMARY\"` `type = \"VARIANT\"` `type = \"COLLECTION\"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", + "required": true, + "type": "string" + }, + "readMask": { + "description": "The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If \"*\" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "requireTotalSize": { + "description": "If true and page_token is empty, ListProductsResponse.total_size is set to the total count of matched items irrespective of pagination. Notice that setting this field to true affects the performance.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2alpha/{+parent}/products", + "response": { + "$ref": "GoogleCloudRetailV2alphaListProductsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a Product.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", @@ -365,11 +555,99 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "removeFulfillmentPlaces": { + "description": "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+product}:removeFulfillmentPlaces", + "request": { + "$ref": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setInventory": { + "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.setInventory", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}:setInventory", + "request": { + "$ref": "GoogleCloudRetailV2alphaSetInventoryRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } } }, + "completionData": { + "methods": { + "import": { + "description": "Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.completionData.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+parent}/completionData:import", + "request": { + "$ref": "GoogleCloudRetailV2alphaImportCompletionDataRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -469,6 +747,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "search": { + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.placements.search", + "parameterOrder": [ + "placement" + ], + "parameters": { + "placement": { + "description": "Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the set of models that will be used to make the search. We currently support one placement with the following ID: * `default_search`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+placement}:search", + "request": { + "$ref": "GoogleCloudRetailV2alphaSearchRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaSearchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -706,7 +1012,7 @@ } } }, - "revision": "20210709", + "revision": "20210723", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -859,6 +1165,32 @@ }, "type": "object" }, + "GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2ImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2ImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2ImportErrorsConfig", @@ -884,6 +1216,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -973,6 +1313,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2SetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2SetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2UserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2UserEventImportSummary", @@ -990,21 +1354,85 @@ }, "type": "object" }, - "GoogleCloudRetailV2alphaBigQuerySource": { - "description": "BigQuery source import data from.", - "id": "GoogleCloudRetailV2alphaBigQuerySource", + "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaAddFulfillmentPlacesRequest": { + "description": "Request message for AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesRequest", "properties": { - "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.", + "addTime": { + "description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", + "format": "google-datetime", "type": "string" }, - "datasetId": { - "description": "Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.", - "type": "string" + "allowMissing": { + "description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" }, - "gcsStagingDir": { - "description": "Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", - "type": "string" + "placeIds": { + "description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaAudience": { + "description": "An intended audience of the Product for whom it's sold.", + "id": "GoogleCloudRetailV2alphaAudience", + "properties": { + "ageGroups": { + "description": "The age groups of the audience. Strongly encouraged to use the standard values: \"newborn\" (up to 3 months old), \"infant\" (3\u201312 months old), \"toddler\" (1\u20135 years old), \"kids\" (5\u201313 years old), \"adult\" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).", + "items": { + "type": "string" + }, + "type": "array" + }, + "genders": { + "description": "The genders of the audience. Strongly encouraged to use the standard values: \"male\", \"female\", \"unisex\". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaBigQuerySource": { + "description": "BigQuery source import data from.", + "id": "GoogleCloudRetailV2alphaBigQuerySource", + "properties": { + "dataSchema": { + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.", + "type": "string" + }, + "datasetId": { + "description": "Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.", + "type": "string" + }, + "gcsStagingDir": { + "description": "Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", + "type": "string" + }, + "partitionDate": { + "$ref": "GoogleTypeDate", + "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`." }, "projectId": { "description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", @@ -1025,6 +1453,10 @@ "description": "Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" }, + "merchantCenterLinkingConfig": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterLinkingConfig", + "description": "The Merchant Center linking configuration. Once a link is added, the data stream from Merchant Center to Cloud Retail will be enabled automatically. The requester must have access to the merchant center account in order to make changes to this field." + }, "name": { "description": "Required. Immutable. The fully qualified resource name of the catalog.", "type": "string" @@ -1036,10 +1468,120 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaColorInfo": { + "description": "The color information of a Product.", + "id": "GoogleCloudRetailV2alphaColorInfo", + "properties": { + "colorFamilies": { + "description": "The standard color families. Strongly recommended to use the following standard color groups: \"Red\", \"Pink\", \"Orange\", \"Yellow\", \"Purple\", \"Green\", \"Cyan\", \"Blue\", \"Brown\", \"White\", \"Gray\", \"Black\" and \"Mixed\". Normally it is expected to have only 1 color family. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "items": { + "type": "string" + }, + "type": "array" + }, + "colors": { + "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCompleteQueryResponse": { + "description": "Response of the auto-complete query.", + "id": "GoogleCloudRetailV2alphaCompleteQueryResponse", + "properties": { + "attributionToken": { + "description": "A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.", + "type": "string" + }, + "completionResults": { + "description": "Results of the matching suggestions. The result list is ordered and the first result is top suggestion.", + "items": { + "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponseCompletionResult" + }, + "type": "array" + }, + "recentSearchResults": { + "description": "Matched recent searches of this user. This field is a restricted feature. Contact Retail Support (retail-search-support@google.com) 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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "items": { + "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCompleteQueryResponseCompletionResult": { + "description": "Resource that represents completion results.", + "id": "GoogleCloudRetailV2alphaCompleteQueryResponseCompletionResult", + "properties": { + "attributes": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2alphaCustomAttribute" + }, + "description": "Additional custom attributes ingested through BigQuery.", + "type": "object" + }, + "suggestion": { + "description": "The suggestion for the query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult": { + "description": "Recent search of this user.", + "id": "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult", + "properties": { + "recentSearch": { + "description": "The recent search query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCompletionDataInputConfig": { + "description": "The input config source for completion data.", + "id": "GoogleCloudRetailV2alphaCompletionDataInputConfig", + "properties": { + "bigQuerySource": { + "$ref": "GoogleCloudRetailV2alphaBigQuerySource", + "description": "Required. BigQuery input source. Add the IAM permission \u201cBigQuery Data Viewer\u201d for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCompletionDetail": { + "description": "Detailed completion information including completion attribution token and clicked completion info.", + "id": "GoogleCloudRetailV2alphaCompletionDetail", + "properties": { + "completionAttributionToken": { + "description": "Completion attribution token in CompleteQueryResponse.attribution_token.", + "type": "string" + }, + "selectedPosition": { + "description": "End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0.", + "format": "int32", + "type": "integer" + }, + "selectedSuggestion": { + "description": "End user selected CompleteQueryResponse.CompletionResult.suggestion.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaCustomAttribute": { "description": "A custom attribute that is not explicitly modeled in Product.", "id": "GoogleCloudRetailV2alphaCustomAttribute", "properties": { + "indexable": { + "description": "If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", + "type": "boolean" + }, "numbers": { "description": "The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is \"lengths_cm\". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1048,6 +1590,10 @@ }, "type": "array" }, + "searchable": { + "description": "If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", + "type": "boolean" + }, "text": { "description": "The textual values of this custom attribute. For example, `[\"yellow\", \"green\"]` when the key is \"color\". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1122,12 +1668,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaFulfillmentInfo": { + "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.", + "id": "GoogleCloudRetailV2alphaFulfillmentInfo", + "properties": { + "placeIds": { + "description": "The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaGcsSource": { "description": "Google Cloud Storage location for input content. format.", "id": "GoogleCloudRetailV2alphaGcsSource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.", "type": "string" }, "inputUris": { @@ -1140,6 +1704,26 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaGetDefaultBranchResponse": { + "description": "Response message of CatalogService.GetDefaultBranch.", + "id": "GoogleCloudRetailV2alphaGetDefaultBranchResponse", + "properties": { + "branch": { + "description": "Full resource name of the branch id currently set as default branch.", + "type": "string" + }, + "note": { + "description": "This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.", + "type": "string" + }, + "setTime": { + "description": "The time when this branch is set to default.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaImage": { "description": "Product thumbnail/detail image.", "id": "GoogleCloudRetailV2alphaImage", @@ -1161,6 +1745,35 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaImportCompletionDataRequest": { + "description": "Request message for ImportCompletionData methods.", + "id": "GoogleCloudRetailV2alphaImportCompletionDataRequest", + "properties": { + "inputConfig": { + "$ref": "GoogleCloudRetailV2alphaCompletionDataInputConfig", + "description": "Required. The desired input location of the data." + }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2alphaImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2alphaImportErrorsConfig", @@ -1186,6 +1799,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -1211,6 +1832,28 @@ "$ref": "GoogleCloudRetailV2alphaProductInputConfig", "description": "Required. The desired input location of the data." }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "string" + }, + "reconciliationMode": { + "description": "The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL.", + "enum": [ + "RECONCILIATION_MODE_UNSPECIFIED", + "INCREMENTAL", + "FULL" + ], + "enumDescriptions": [ + "Defaults to INCREMENTAL.", + "Inserts new products or updates existing products.", + "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location. Can only be while using BigQuerySource. Add the IAM permission \u201cBigQuery Data Viewer\u201d for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search." + ], + "type": "string" + }, + "requestId": { + "description": "Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: \"[a-zA-Z0-9_]+\". This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "string" + }, "updateMask": { "description": "Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields.", "format": "google-fieldmask", @@ -1274,6 +1917,33 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaInterval": { + "description": "A floating point interval.", + "id": "GoogleCloudRetailV2alphaInterval", + "properties": { + "exclusiveMaximum": { + "description": "Exclusive upper bound.", + "format": "double", + "type": "number" + }, + "exclusiveMinimum": { + "description": "Exclusive lower bound.", + "format": "double", + "type": "number" + }, + "maximum": { + "description": "Inclusive upper bound.", + "format": "double", + "type": "number" + }, + "minimum": { + "description": "Inclusive lower bound.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaListCatalogsResponse": { "description": "Response for CatalogService.ListCatalogs method.", "id": "GoogleCloudRetailV2alphaListCatalogsResponse", @@ -1292,6 +1962,66 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaListProductsResponse": { + "description": "Response message for ProductService.ListProducts method.", + "id": "GoogleCloudRetailV2alphaListProductsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "products": { + "description": "The Products.", + "items": { + "$ref": "GoogleCloudRetailV2alphaProduct" + }, + "type": "array" + }, + "totalSize": { + "description": "The total count of matched Products irrespective of pagination. The total number of Products returned by pagination may be less than the total_size that matches. This field is ignored if ListProductsRequest.require_total_size is not set or ListProductsRequest.page_token is not empty.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaMerchantCenterLink": { + "description": "Represents a link between a Merchant Center account and a branch. Once a link is established, products from the linked merchant center account will be streamed to the linked branch.", + "id": "GoogleCloudRetailV2alphaMerchantCenterLink", + "properties": { + "branchId": { + "description": "The branch id (e.g. 0/1/2) within this catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch id can only have one linked merchant center account id.", + "type": "string" + }, + "destinations": { + "description": "String representing the destination to import for, all if left empty. List of possible values can be found here. [https://support.google.com/merchants/answer/7501026?hl=en] List of allowed string values: \"shopping-ads\", \"buy-on-google-listings\", \"display-ads\", \"local-inventory -ads\", \"free-listings\", \"free-local-listings\" NOTE: The string values are case sensitive.", + "items": { + "type": "string" + }, + "type": "array" + }, + "merchantCenterAccountId": { + "description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaMerchantCenterLinkingConfig": { + "description": "Configures Merchant Center linking. Links contained in the config will be used to sync data from a Merchant Center account to a Cloud Retail branch.", + "id": "GoogleCloudRetailV2alphaMerchantCenterLinkingConfig", + "properties": { + "links": { + "description": "Links between Merchant Center accounts and branches.", + "items": { + "$ref": "GoogleCloudRetailV2alphaMerchantCenterLink" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaPredictRequest": { "description": "Request message for Predict method.", "id": "GoogleCloudRetailV2alphaPredictRequest", @@ -1391,7 +2121,7 @@ "type": "number" }, "currencyCode": { - "description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.", + "description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.", "type": "string" }, "originalPrice": { @@ -1403,6 +2133,36 @@ "description": "Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).", "format": "float", "type": "number" + }, + "priceEffectiveTime": { + "description": "The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.", + "format": "google-datetime", + "type": "string" + }, + "priceExpireTime": { + "description": "The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.", + "format": "google-datetime", + "type": "string" + }, + "priceRange": { + "$ref": "GoogleCloudRetailV2alphaPriceInfoPriceRange", + "description": "Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaPriceInfoPriceRange": { + "description": "The price range of all variant Product having the same Product.primary_product_id.", + "id": "GoogleCloudRetailV2alphaPriceInfoPriceRange", + "properties": { + "originalPrice": { + "$ref": "GoogleCloudRetailV2alphaInterval", + "description": "The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id." + }, + "price": { + "$ref": "GoogleCloudRetailV2alphaInterval", + "description": "The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id." } }, "type": "object" @@ -1415,9 +2175,13 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2alphaCustomAttribute" }, - "description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.", + "description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.", "type": "object" }, + "audience": { + "$ref": "GoogleCloudRetailV2alphaAudience", + "description": "The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product." + }, "availability": { "description": "The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).", "enum": [ @@ -1442,10 +2206,17 @@ "type": "integer" }, "availableTime": { - "description": "The timestamp when this Product becomes available for recommendation.", + "description": "The timestamp when this Product becomes available for SearchService.Search.", "format": "google-datetime", "type": "string" }, + "brands": { + "description": "The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", + "items": { + "type": "string" + }, + "type": "array" + }, "categories": { "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { @@ -1453,231 +2224,831 @@ }, "type": "array" }, + "collectionMemberIds": { + "description": "The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", + "items": { + "type": "string" + }, + "type": "array" + }, + "colorInfo": { + "$ref": "GoogleCloudRetailV2alphaColorInfo", + "description": "The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color)." + }, + "conditions": { + "description": "The condition of the product. Strongly encouraged to use the standard values: \"new\", \"refurbished\", \"used\". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).", + "items": { + "type": "string" + }, + "type": "array" + }, "description": { "description": "Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).", "type": "string" }, - "id": { - "description": "Immutable. Product identifier, which is the final component of name. For example, this field is \"id_1\", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).", + "expireTime": { + "description": "The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", + "format": "google-datetime", "type": "string" }, - "images": { - "description": "Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", + "fulfillmentInfo": { + "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "$ref": "GoogleCloudRetailV2alphaFulfillmentInfo" + }, + "type": "array" + }, + "gtin": { + "description": "The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "id": { + "description": "Immutable. Product identifier, which is the final component of name. For example, this field is \"id_1\", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).", + "type": "string" + }, + "images": { + "description": "Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", + "items": { + "$ref": "GoogleCloudRetailV2alphaImage" + }, + "type": "array" + }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", + "type": "string" + }, + "materials": { + "description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", + "type": "string" + }, + "patterns": { + "description": "The pattern or graphic print of the product. For example, \"striped\", \"polka dot\", \"paisley\". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).", + "items": { + "type": "string" + }, + "type": "array" + }, + "priceInfo": { + "$ref": "GoogleCloudRetailV2alphaPriceInfo", + "description": "Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." + }, + "primaryProductId": { + "description": "Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).", + "type": "string" + }, + "promotions": { + "description": "The promotions applied to the product. A maximum of 10 values are allowed per Product.", + "items": { + "$ref": "GoogleCloudRetailV2alphaPromotion" + }, + "type": "array" + }, + "publishTime": { + "description": "The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.", + "format": "google-datetime", + "type": "string" + }, + "rating": { + "$ref": "GoogleCloudRetailV2alphaRating", + "description": "The rating of this product." + }, + "retrievableFields": { + "description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "google-fieldmask", + "type": "string" + }, + "sizes": { + "description": "The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in \"US:MENS:M\", \"US\" represents size system; \"MENS\" represents size type; \"M\" represents size value. In \"GIRLS:27\", size system is empty; \"GIRLS\" represents size type; \"27\" represents size value. In \"32 inches\", both size system and size type are empty, while size value is \"32 inches\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).", + "items": { + "type": "string" + }, + "type": "array" + }, + "tags": { + "description": "Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0\u20134](https://support.google.com/merchants/answer/6324473).", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).", + "type": "string" + }, + "ttl": { + "description": "Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", + "format": "google-duration", + "type": "string" + }, + "type": { + "description": "Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.", + "enum": [ + "TYPE_UNSPECIFIED", + "PRIMARY", + "VARIANT", + "COLLECTION" + ], + "enumDescriptions": [ + "Default value. Default to Catalog.product_level_config.ingestion_product_type if unset.", + "The primary type. As the primary unit for predicting, indexing and search serving, a Type.PRIMARY Product is grouped with multiple Type.VARIANT Products.", + "The variant type. Type.VARIANT Products usually share some common attributes on the same Type.PRIMARY Products, but they have variant attributes like different colors, sizes and prices, etc.", + "The collection type. Collection products are bundled Type.PRIMARY Products or Type.VARIANT Products that are sold together, such as a jewelry set with necklaces, earrings and rings, etc." + ], + "type": "string" + }, + "uri": { + "description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", + "type": "string" + }, + "variants": { + "description": "Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", + "items": { + "$ref": "GoogleCloudRetailV2alphaProduct" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaProductDetail": { + "description": "Detailed product information associated with a user event.", + "id": "GoogleCloudRetailV2alphaProductDetail", + "properties": { + "product": { + "$ref": "GoogleCloudRetailV2alphaProduct", + "description": "Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog." + }, + "quantity": { + "description": "Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaProductInlineSource": { + "description": "The inline source for the input config for ImportProducts method.", + "id": "GoogleCloudRetailV2alphaProductInlineSource", + "properties": { + "products": { + "description": "Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.", + "items": { + "$ref": "GoogleCloudRetailV2alphaProduct" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaProductInputConfig": { + "description": "The input config source for products.", + "id": "GoogleCloudRetailV2alphaProductInputConfig", + "properties": { + "bigQuerySource": { + "$ref": "GoogleCloudRetailV2alphaBigQuerySource", + "description": "BigQuery input source." + }, + "gcsSource": { + "$ref": "GoogleCloudRetailV2alphaGcsSource", + "description": "Google Cloud Storage location for the input content." + }, + "productInlineSource": { + "$ref": "GoogleCloudRetailV2alphaProductInlineSource", + "description": "The Inline source for the input content for products." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaProductLevelConfig": { + "description": "Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made.", + "id": "GoogleCloudRetailV2alphaProductLevelConfig", + "properties": { + "ingestionProductType": { + "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "type": "string" + }, + "merchantCenterProductIdField": { + "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaPromotion": { + "description": "Promotion information.", + "id": "GoogleCloudRetailV2alphaPromotion", + "properties": { + "promotionId": { + "description": "ID of the promotion. For example, \"free gift\". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaPurchaseTransaction": { + "description": "A transaction represents the entire purchase transaction.", + "id": "GoogleCloudRetailV2alphaPurchaseTransaction", + "properties": { + "cost": { + "description": "All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost", + "format": "float", + "type": "number" + }, + "currencyCode": { + "description": "Required. Currency code. Use three-character ISO-4217 code.", + "type": "string" + }, + "id": { + "description": "The transaction ID with a length limit of 128 characters.", + "type": "string" + }, + "revenue": { + "description": "Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.", + "format": "float", + "type": "number" + }, + "tax": { + "description": "All the taxes associated with the transaction.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaPurgeMetadata": { + "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaPurgeMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaPurgeUserEventsRequest": { + "description": "Request message for PurgeUserEvents method.", + "id": "GoogleCloudRetailV2alphaPurgeUserEventsRequest", + "properties": { + "filter": { + "description": "Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Deleting specific eventType in time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = \"detail-page-view\"` * Deleting all events for a specific visitor: `visitorId = \"visitor1024\"` The filtering fields are assumed to have an implicit AND.", + "type": "string" + }, + "force": { + "description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaPurgeUserEventsResponse": { + "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", + "id": "GoogleCloudRetailV2alphaPurgeUserEventsResponse", + "properties": { + "purgedEventsCount": { + "description": "The total count of events purged as a result of the operation.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaRating": { + "description": "The rating of a Product.", + "id": "GoogleCloudRetailV2alphaRating", + "properties": { + "averageRating": { + "description": "The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "float", + "type": "number" + }, + "ratingCount": { + "description": "The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "type": "integer" + }, + "ratingHistogram": { + "description": "List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { + "description": "Metadata for RejoinUserEvents method.", + "id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaRejoinUserEventsRequest": { + "description": "Request message for RejoinUserEvents method.", + "id": "GoogleCloudRetailV2alphaRejoinUserEventsRequest", + "properties": { + "userEventRejoinScope": { + "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", + "enum": [ + "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", + "JOINED_EVENTS", + "UNJOINED_EVENTS" + ], + "enumDescriptions": [ + "Rejoin all events with the latest product catalog, including both joined events and unjoined events.", + "Only rejoin joined events with the latest product catalog.", + "Only rejoin unjoined events with the latest product catalog." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaRejoinUserEventsResponse": { + "description": "Response message for RejoinUserEvents method.", + "id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", + "properties": { + "rejoinedUserEventsCount": { + "description": "Number of user events that were joined with latest product catalog.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesRequest": { + "description": "Request message for RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeTime": { + "description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "type": { + "description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequest": { + "description": "Request message for SearchService.Search method.", + "id": "GoogleCloudRetailV2alphaSearchRequest", + "properties": { + "boostSpec": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestBoostSpec", + "description": "Boost specification to boost certain products. See more details at this [user guide](/retail/private/docs/boosting)." + }, + "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 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.", + "type": "string" + }, + "dynamicFacetSpec": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec", + "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature." + }, + "facetSpecs": { + "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestFacetSpec" + }, + "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](/retail/private/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "type": "string" + }, + "offset": { + "description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + }, + "orderBy": { + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](/retail/private/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "type": "string" + }, + "pageCategories": { + "description": "The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "pageSize": { + "description": "Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "query": { + "description": "Raw search query.", + "type": "string" + }, + "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](/retail/private/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](/retail/private/docs/result-size#relevance_thresholding).", + "enum": [ + "RELEVANCE_THRESHOLD_UNSPECIFIED", + "HIGH", + "MEDIUM", + "LOW", + "LOWEST" + ], + "enumDescriptions": [ + "Default value. Defaults to RelevanceThreshold.HIGH.", + "High relevance threshold.", + "Medium relevance threshold.", + "Low relevance threshold.", + "Lowest relevance threshold." + ], + "type": "string" + }, + "userInfo": { + "$ref": "GoogleCloudRetailV2alphaUserInfo", + "description": "User information." + }, + "variantRollupKeys": { + "description": "The keys to fetch and rollup the matching variant Products attributes. The attributes from all the matching variant Products are merged and de-duplicated. Notice that rollup variant Products attributes will lead to extra query latency. Maximum number of keys is 10. For Product.fulfillment_info, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.filfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. * shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * customFulfillment1.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. * customFulfillment3.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. * customFulfillment5.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "visitorId": { + "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequestBoostSpec": { + "description": "Boost specification to boost certain items.", + "id": "GoogleCloudRetailV2alphaSearchRequestBoostSpec", + "properties": { + "conditionBoostSpecs": { + "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.", + "items": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestBoostSpecConditionBoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequestBoostSpecConditionBoostSpec": { + "description": "Boost applies to products which match a condition.", + "id": "GoogleCloudRetailV2alphaSearchRequestBoostSpecConditionBoostSpec", + "properties": { + "boost": { + "description": "Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", + "format": "float", + "type": "number" + }, + "condition": { + "description": "An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec": { + "description": "The specifications of dynamically generated facets.", + "id": "GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec", + "properties": { + "mode": { + "description": "Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "Default value.", + "Disable Dynamic Facet.", + "Automatic mode built by Google Retail Search." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequestFacetSpec": { + "description": "A facet specification to perform faceted search.", + "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.", + "type": "boolean" + }, + "excludedFilterKeys": { + "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet \"Red\" and 200 products with color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and have \"colorFamilies\" as FacetKey.key will by default return the \"Red\" with count 100. If this field contains \"colorFamilies\", then the query returns both the \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "facetKey": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKey", + "description": "Required. The facet key specification." + }, + "limit": { + "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKey": { + "description": "Specifies how a facet is computed.", + "id": "GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKey", + "properties": { + "contains": { + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intervals": { + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 30.", "items": { - "$ref": "GoogleCloudRetailV2alphaImage" + "$ref": "GoogleCloudRetailV2alphaInterval" }, "type": "array" }, - "name": { - "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", + "key": { + "description": "Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = *# The Product.brands. * \"brands\"; *# The Product.categories. * \"categories\"; *# The Audience.genders. * | \"genders\"; *# The Audience.age_groups. * | \"ageGroups\"; *# The Product.availability. Value is one of * *# \"IN_STOCK\", \"OUT_OF_STOCK\", PREORDER\", \"BACKORDER\". * | \"availability\"; *# The ColorInfo.color_families. * | \"colorFamilies\"; *# The ColorInfo.colors. * | \"colors\"; *# The Product.sizes. * | \"sizes\"; *# The Product.materials. * | \"materials\"; *# The Product.patterns. * | \"patterns\"; *# The Product.conditions. * | \"conditions\"; *# The textual custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are textual. * *# map. * | \"attributes.key\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.PICKUP_IN_STORE. * | \"pickupInStore\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SHIP_TO_STORE. * | \"shipToStore\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | \"sameDayDelivery\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * | \"nextDayDelivery\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_1. * | \"customFulfillment1\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | \"customFulfillment2\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | \"customFulfillment3\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_4. * | \"customFulfillment4\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | \"customFulfillment5\"; * numerical_field = *# The PriceInfo.price. * \"price\"; *# The discount. Computed by (original_price-price)/price * \"discount\"; *# The Rating.average_rating. * \"rating\"; *# The Rating.rating_count. * \"ratingCount\"; *# The numerical custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are numerical. * | \"attributes.key\";", "type": "string" }, - "priceInfo": { - "$ref": "GoogleCloudRetailV2alphaPriceInfo", - "description": "Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." - }, - "primaryProductId": { - "description": "Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).", + "orderBy": { + "description": "The order in which Facet.values are returned. Allowed values are: * \"count desc\", which means order by Facet.FacetValue.count descending. * \"value desc\", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", "type": "string" }, - "tags": { - "description": "Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0\u20134](https://support.google.com/merchants/answer/6324473).", + "prefixes": { + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, - "title": { - "description": "Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).", + "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, FacetValue.value will be always \"1\" and FacetValue.count will be the number of results that matches 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\".", "type": "string" }, - "type": { - "description": "Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.", + "restrictedValues": { + "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaSearchRequestQueryExpansionSpec": { + "description": "Specification to determine under which conditions query expansion should occur.", + "id": "GoogleCloudRetailV2alphaSearchRequestQueryExpansionSpec", + "properties": { + "condition": { + "description": "The condition under which query expansion should occur. Default to Condition.DISABLED.", "enum": [ - "TYPE_UNSPECIFIED", - "PRIMARY", - "VARIANT", - "COLLECTION" + "CONDITION_UNSPECIFIED", + "DISABLED", + "AUTO" ], "enumDescriptions": [ - "Default value. Default to Catalog.product_level_config.ingestion_product_type if unset.", - "The primary type. As the primary unit for predicting, indexing and search serving, a Type.PRIMARY Product is grouped with multiple Type.VARIANT Products.", - "The variant type. Type.VARIANT Products usually share some common attributes on the same Type.PRIMARY Products, but they have variant attributes like different colors, sizes and prices, etc.", - "The collection type. Collection products are bundled Type.PRIMARY Products or Type.VARIANT Products that are sold together, such as a jewelry set with necklaces, earrings and rings, etc." + "Unspecified query expansion condition. This defaults to Condition.DISABLED.", + "Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", + "Automatic query expansion built by Google Retail Search." ], "type": "string" - }, - "uri": { - "description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", - "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2alphaProductDetail": { - "description": "Detailed product information associated with a user event.", - "id": "GoogleCloudRetailV2alphaProductDetail", + "GoogleCloudRetailV2alphaSearchResponse": { + "description": "Response message for SearchService.Search method.", + "id": "GoogleCloudRetailV2alphaSearchResponse", "properties": { - "product": { - "$ref": "GoogleCloudRetailV2alphaProduct", - "description": "Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog." + "attributionToken": { + "description": "A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.", + "type": "string" }, - "quantity": { - "description": "Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.", + "correctedQuery": { + "description": "If spell correction applies, the corrected query. Otherwise, empty.", + "type": "string" + }, + "facets": { + "description": "Results of facets requested by user.", + "items": { + "$ref": "GoogleCloudRetailV2alphaSearchResponseFacet" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "queryExpansionInfo": { + "$ref": "GoogleCloudRetailV2alphaSearchResponseQueryExpansionInfo", + "description": "Query expansion information for the returned results." + }, + "redirectUri": { + "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.", + "type": "string" + }, + "results": { + "description": "A list of matched items. The order represents the ranking.", + "items": { + "$ref": "GoogleCloudRetailV2alphaSearchResponseSearchResult" + }, + "type": "array" + }, + "totalSize": { + "description": "The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.", "format": "int32", "type": "integer" } }, "type": "object" }, - "GoogleCloudRetailV2alphaProductInlineSource": { - "description": "The inline source for the input config for ImportProducts method.", - "id": "GoogleCloudRetailV2alphaProductInlineSource", + "GoogleCloudRetailV2alphaSearchResponseFacet": { + "description": "A facet result.", + "id": "GoogleCloudRetailV2alphaSearchResponseFacet", "properties": { - "products": { - "description": "Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.", + "dynamicFacet": { + "description": "Whether the facet is dynamically generated.", + "type": "boolean" + }, + "key": { + "description": "The key for this facet. E.g., \"colorFamilies\" or \"price\" or \"attributes.attr1\".", + "type": "string" + }, + "values": { + "description": "The facet values for this field.", "items": { - "$ref": "GoogleCloudRetailV2alphaProduct" + "$ref": "GoogleCloudRetailV2alphaSearchResponseFacetFacetValue" }, "type": "array" } }, "type": "object" }, - "GoogleCloudRetailV2alphaProductInputConfig": { - "description": "The input config source for products.", - "id": "GoogleCloudRetailV2alphaProductInputConfig", + "GoogleCloudRetailV2alphaSearchResponseFacetFacetValue": { + "description": "A facet value which contains value names and their count.", + "id": "GoogleCloudRetailV2alphaSearchResponseFacetFacetValue", "properties": { - "bigQuerySource": { - "$ref": "GoogleCloudRetailV2alphaBigQuerySource", - "description": "BigQuery input source." + "count": { + "description": "Number of items that have this facet value.", + "format": "int64", + "type": "string" }, - "gcsSource": { - "$ref": "GoogleCloudRetailV2alphaGcsSource", - "description": "Google Cloud Storage location for the input content." + "interval": { + "$ref": "GoogleCloudRetailV2alphaInterval", + "description": "Interval value for a facet, such as [10, 20) for facet \"price\"." }, - "productInlineSource": { - "$ref": "GoogleCloudRetailV2alphaProductInlineSource", - "description": "The Inline source for the input content for products." + "value": { + "description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", + "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2alphaProductLevelConfig": { - "description": "Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made.", - "id": "GoogleCloudRetailV2alphaProductLevelConfig", + "GoogleCloudRetailV2alphaSearchResponseQueryExpansionInfo": { + "description": "Information describing query expansion including whether expansion has occurred.", + "id": "GoogleCloudRetailV2alphaSearchResponseQueryExpansionInfo", "properties": { - "ingestionProductType": { - "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", - "type": "string" - }, - "merchantCenterProductIdField": { - "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", - "type": "string" + "expandedQuery": { + "description": "Bool describing whether query expansion has occurred.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudRetailV2alphaPurchaseTransaction": { - "description": "A transaction represents the entire purchase transaction.", - "id": "GoogleCloudRetailV2alphaPurchaseTransaction", + "GoogleCloudRetailV2alphaSearchResponseSearchResult": { + "description": "Represents the search results.", + "id": "GoogleCloudRetailV2alphaSearchResponseSearchResult", "properties": { - "cost": { - "description": "All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost", - "format": "float", - "type": "number" - }, - "currencyCode": { - "description": "Required. Currency code. Use three-character ISO-4217 code.", - "type": "string" - }, "id": { - "description": "The transaction ID with a length limit of 128 characters.", + "description": "Product.id of the searched Product.", "type": "string" }, - "revenue": { - "description": "Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.", - "format": "float", - "type": "number" + "matchingVariantCount": { + "description": "The count of matched variant Products.", + "format": "int32", + "type": "integer" }, - "tax": { - "description": "All the taxes associated with the transaction.", - "format": "float", - "type": "number" + "matchingVariantFields": { + "additionalProperties": { + "format": "google-fieldmask", + "type": "string" + }, + "description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", + "type": "object" + }, + "product": { + "$ref": "GoogleCloudRetailV2alphaProduct", + "description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." + }, + "variantRollupValues": { + "additionalProperties": { + "type": "any" + }, + "description": "The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by \"colorFamilies:ANY(\\\"red\\\")\" and rollup \"colorFamilies\", only \"red\" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors \"red\" and \"blue\", the rollup values are { key: \"colorFamilies\" value { list_value { values { string_value: \"red\" } values { string_value: \"blue\" } } } } For Product.fulfillment_info, the rollup values is a double value with type google.protobuf.Value. For example, {key: \"pickupInStore.store1\" value { number_value: 10 }} means a there are 10 variants in this product are available in the store \"store1\".", + "type": "object" } }, "type": "object" }, - "GoogleCloudRetailV2alphaPurgeMetadata": { - "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", - "id": "GoogleCloudRetailV2alphaPurgeMetadata", - "properties": {}, - "type": "object" - }, - "GoogleCloudRetailV2alphaPurgeUserEventsRequest": { - "description": "Request message for PurgeUserEvents method.", - "id": "GoogleCloudRetailV2alphaPurgeUserEventsRequest", + "GoogleCloudRetailV2alphaSetDefaultBranchRequest": { + "description": "Request message to set a specified branch as new default_branch.", + "id": "GoogleCloudRetailV2alphaSetDefaultBranchRequest", "properties": { - "filter": { - "description": "Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Deleting specific eventType in time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = \"detail-page-view\"` * Deleting all events for a specific visitor: `visitorId = \"visitor1024\"` The filtering fields are assumed to have an implicit AND.", + "branchId": { + "description": "The final component of the resource name of a branch. This field must be one of \"0\", \"1\" or \"2\". Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" }, - "force": { - "description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.", - "type": "boolean" - } - }, - "type": "object" - }, - "GoogleCloudRetailV2alphaPurgeUserEventsResponse": { - "description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", - "id": "GoogleCloudRetailV2alphaPurgeUserEventsResponse", - "properties": { - "purgedEventsCount": { - "description": "The total count of events purged as a result of the operation.", - "format": "int64", + "note": { + "description": "Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", - "id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", + "GoogleCloudRetailV2alphaSetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryMetadata", "properties": {}, "type": "object" }, - "GoogleCloudRetailV2alphaRejoinUserEventsRequest": { - "description": "Request message for RejoinUserEvents method.", - "id": "GoogleCloudRetailV2alphaRejoinUserEventsRequest", + "GoogleCloudRetailV2alphaSetInventoryRequest": { + "description": "Request message for SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryRequest", "properties": { - "userEventRejoinScope": { - "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", - "enum": [ - "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", - "JOINED_EVENTS", - "UNJOINED_EVENTS" - ], - "enumDescriptions": [ - "Rejoin all events with the latest product catalog, including both joined events and unjoined events.", - "Only rejoin joined events with the latest product catalog.", - "Only rejoin unjoined events with the latest product catalog." - ], + "allowMissing": { + "description": "If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "inventory": { + "$ref": "GoogleCloudRetailV2alphaProduct", + "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead." + }, + "setMask": { + "description": "Indicates which inventory fields in the provided Product to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", + "format": "google-fieldmask", + "type": "string" + }, + "setTime": { + "description": "The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.", + "format": "google-datetime", "type": "string" } }, "type": "object" }, - "GoogleCloudRetailV2alphaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", - "id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", - "properties": { - "rejoinedUserEventsCount": { - "description": "Number of user events that were joined with latest product catalog.", - "format": "int64", - "type": "string" - } - }, + "GoogleCloudRetailV2alphaSetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryResponse", + "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaUserEvent": { @@ -1692,13 +3063,17 @@ "type": "object" }, "attributionToken": { - "description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", + "description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", "type": "string" }, "cartId": { "description": "The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.", "type": "string" }, + "completionDetail": { + "$ref": "GoogleCloudRetailV2alphaCompletionDetail", + "description": "The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion." + }, "eventTime": { "description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", "format": "google-datetime", @@ -1715,6 +3090,19 @@ }, "type": "array" }, + "filter": { + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "offset": { + "description": "An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "type": "integer" + }, + "orderBy": { + "description": "The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, "pageCategories": { "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1742,7 +3130,11 @@ "type": "string" }, "searchQuery": { - "description": "The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "sessionId": { + "description": "A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix.", "type": "string" }, "uri": { @@ -1819,11 +3211,11 @@ "type": "boolean" }, "ipAddress": { - "description": "The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userAgent": { - "description": "User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userId": { @@ -1833,6 +3225,18 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2betaExportErrorsConfig", @@ -1897,6 +3301,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2betaImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2betaImportErrorsConfig", @@ -1922,6 +3340,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -2011,6 +3437,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2betaUserEventImportSummary", @@ -2113,6 +3563,28 @@ } }, "type": "object" + }, + "GoogleTypeDate": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.", + "id": "GoogleTypeDate", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/googleapiclient/discovery_cache/documents/retail.v2beta.json b/googleapiclient/discovery_cache/documents/retail.v2beta.json index 1328a743153..c42b4e4a561 100644 --- a/googleapiclient/discovery_cache/documents/retail.v2beta.json +++ b/googleapiclient/discovery_cache/documents/retail.v2beta.json @@ -111,6 +111,88 @@ "resources": { "catalogs": { "methods": { + "completeQuery": { + "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.completeQuery", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + }, + "dataset": { + "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail This option is not automatically enabled. Before using cloud-retail, contact retail-search-support@google.com first.", + "location": "query", + "type": "string" + }, + "deviceType": { + "description": "The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. DESKTOP, MOBILE. If it is empty, the suggestions are across all device types. Supported formats: * UNKNOWN_DEVICE_TYPE * DESKTOP * MOBILE * A customized string starts with OTHER_, e.g. OTHER_IPHONE.", + "location": "query", + "type": "string" + }, + "languageCodes": { + "description": "The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only \"en-US\" is currently supported.", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxSuggestions": { + "description": "Completion max suggestions. The maximum allowed max suggestions is 20. The default value is 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "query": { + "description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.", + "location": "query", + "type": "string" + }, + "visitorId": { + "description": "A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta/{+catalog}:completeQuery", + "response": { + "$ref": "GoogleCloudRetailV2betaCompleteQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getDefaultBranch": { + "description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getDefaultBranch", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+catalog}:getDefaultBranch", + "response": { + "$ref": "GoogleCloudRetailV2betaGetDefaultBranchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all the Catalogs associated with the project.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs", @@ -180,6 +262,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "setDefaultBranch": { + "description": "Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using \"default_branch\" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:setDefaultBranch", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.setDefaultBranch", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+catalog}:setDefaultBranch", + "request": { + "$ref": "GoogleCloudRetailV2betaSetDefaultBranchRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -216,6 +326,34 @@ }, "products": { "methods": { + "addFulfillmentPlaces": { + "description": "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+product}:addFulfillmentPlaces", + "request": { + "$ref": "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Product.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", @@ -327,6 +465,53 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Gets a list of Products.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.branches.products.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = \"some_product_id\"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = \"some_product_id\"` * List Products with a partibular type. For example: `type = \"PRIMARY\"` `type = \"VARIANT\"` `type = \"COLLECTION\"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", + "required": true, + "type": "string" + }, + "readMask": { + "description": "The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If \"*\" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2beta/{+parent}/products", + "response": { + "$ref": "GoogleCloudRetailV2betaListProductsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a Product.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", @@ -365,11 +550,99 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "removeFulfillmentPlaces": { + "description": "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+product}:removeFulfillmentPlaces", + "request": { + "$ref": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setInventory": { + "description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in UpdateProductRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.setInventory", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+name}:setInventory", + "request": { + "$ref": "GoogleCloudRetailV2betaSetInventoryRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } } }, + "completionData": { + "methods": { + "import": { + "description": "Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.completionData.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+parent}/completionData:import", + "request": { + "$ref": "GoogleCloudRetailV2betaImportCompletionDataRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -469,6 +742,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "search": { + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.placements.search", + "parameterOrder": [ + "placement" + ], + "parameters": { + "placement": { + "description": "Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the set of models that will be used to make the search. We currently support one placement with the following ID: * `default_search`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+placement}:search", + "request": { + "$ref": "GoogleCloudRetailV2betaSearchRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaSearchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -706,7 +1007,7 @@ } } }, - "revision": "20210709", + "revision": "20210723", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -859,6 +1160,32 @@ }, "type": "object" }, + "GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2ImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2ImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2ImportErrorsConfig", @@ -884,6 +1211,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -973,6 +1308,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2SetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2SetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2SetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2UserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2UserEventImportSummary", @@ -990,6 +1349,18 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2alphaExportErrorsConfig", @@ -1054,6 +1425,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2alphaImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2alphaImportErrorsConfig", @@ -1079,7 +1464,15 @@ "format": "int64", "type": "string" }, - "successCount": { + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, + "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", "type": "string" @@ -1168,6 +1561,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaSetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaSetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2alphaSetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2alphaUserEventImportSummary", @@ -1185,12 +1602,72 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest": { + "description": "Request message for AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest", + "properties": { + "addTime": { + "description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "allowMissing": { + "description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAudience": { + "description": "An intended audience of the Product for whom it's sold.", + "id": "GoogleCloudRetailV2betaAudience", + "properties": { + "ageGroups": { + "description": "The age groups of the audience. Strongly encouraged to use the standard values: \"newborn\" (up to 3 months old), \"infant\" (3\u201312 months old), \"toddler\" (1\u20135 years old), \"kids\" (5\u201313 years old), \"adult\" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).", + "items": { + "type": "string" + }, + "type": "array" + }, + "genders": { + "description": "The genders of the audience. Strongly encouraged to use the standard values: \"male\", \"female\", \"unisex\". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaBigQuerySource": { "description": "BigQuery source import data from.", "id": "GoogleCloudRetailV2betaBigQuerySource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.", "type": "string" }, "datasetId": { @@ -1201,6 +1678,10 @@ "description": "Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", "type": "string" }, + "partitionDate": { + "$ref": "GoogleTypeDate", + "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`." + }, "projectId": { "description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", "type": "string" @@ -1231,10 +1712,120 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaColorInfo": { + "description": "The color information of a Product.", + "id": "GoogleCloudRetailV2betaColorInfo", + "properties": { + "colorFamilies": { + "description": "The standard color families. Strongly recommended to use the following standard color groups: \"Red\", \"Pink\", \"Orange\", \"Yellow\", \"Purple\", \"Green\", \"Cyan\", \"Blue\", \"Brown\", \"White\", \"Gray\", \"Black\" and \"Mixed\". Normally it is expected to have only 1 color family. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "items": { + "type": "string" + }, + "type": "array" + }, + "colors": { + "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCompleteQueryResponse": { + "description": "Response of the auto-complete query.", + "id": "GoogleCloudRetailV2betaCompleteQueryResponse", + "properties": { + "attributionToken": { + "description": "A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.", + "type": "string" + }, + "completionResults": { + "description": "Results of the matching suggestions. The result list is ordered and the first result is top suggestion.", + "items": { + "$ref": "GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult" + }, + "type": "array" + }, + "recentSearchResults": { + "description": "Matched recent searches of this user. This field is a restricted feature. Contact Retail Support (retail-search-support@google.com) 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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "items": { + "$ref": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult": { + "description": "Resource that represents completion results.", + "id": "GoogleCloudRetailV2betaCompleteQueryResponseCompletionResult", + "properties": { + "attributes": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2betaCustomAttribute" + }, + "description": "Additional custom attributes ingested through BigQuery.", + "type": "object" + }, + "suggestion": { + "description": "The suggestion for the query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult": { + "description": "Recent search of this user.", + "id": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult", + "properties": { + "recentSearch": { + "description": "The recent search query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCompletionDataInputConfig": { + "description": "The input config source for completion data.", + "id": "GoogleCloudRetailV2betaCompletionDataInputConfig", + "properties": { + "bigQuerySource": { + "$ref": "GoogleCloudRetailV2betaBigQuerySource", + "description": "Required. BigQuery input source. Add the IAM permission \u201cBigQuery Data Viewer\u201d for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCompletionDetail": { + "description": "Detailed completion information including completion attribution token and clicked completion info.", + "id": "GoogleCloudRetailV2betaCompletionDetail", + "properties": { + "completionAttributionToken": { + "description": "Completion attribution token in CompleteQueryResponse.attribution_token.", + "type": "string" + }, + "selectedPosition": { + "description": "End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0.", + "format": "int32", + "type": "integer" + }, + "selectedSuggestion": { + "description": "End user selected CompleteQueryResponse.CompletionResult.suggestion.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaCustomAttribute": { "description": "A custom attribute that is not explicitly modeled in Product.", "id": "GoogleCloudRetailV2betaCustomAttribute", "properties": { + "indexable": { + "description": "If true, custom attribute values are indexed, so that it can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", + "type": "boolean" + }, "numbers": { "description": "The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is \"lengths_cm\". At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1243,6 +1834,10 @@ }, "type": "array" }, + "searchable": { + "description": "If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", + "type": "boolean" + }, "text": { "description": "The textual values of this custom attribute. For example, `[\"yellow\", \"green\"]` when the key is \"color\". At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1317,12 +1912,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaFulfillmentInfo": { + "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.", + "id": "GoogleCloudRetailV2betaFulfillmentInfo", + "properties": { + "placeIds": { + "description": "The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaGcsSource": { "description": "Google Cloud Storage location for input content. format.", "id": "GoogleCloudRetailV2betaGcsSource", "properties": { "dataSchema": { - "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.", + "description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719.", "type": "string" }, "inputUris": { @@ -1335,6 +1948,26 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaGetDefaultBranchResponse": { + "description": "Response message of CatalogService.GetDefaultBranch.", + "id": "GoogleCloudRetailV2betaGetDefaultBranchResponse", + "properties": { + "branch": { + "description": "Full resource name of the branch id currently set as default branch.", + "type": "string" + }, + "note": { + "description": "This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.", + "type": "string" + }, + "setTime": { + "description": "The time when this branch is set to default.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaImage": { "description": "Product thumbnail/detail image.", "id": "GoogleCloudRetailV2betaImage", @@ -1356,6 +1989,35 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaImportCompletionDataRequest": { + "description": "Request message for ImportCompletionData methods.", + "id": "GoogleCloudRetailV2betaImportCompletionDataRequest", + "properties": { + "inputConfig": { + "$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", + "description": "Required. The desired input location of the data." + }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaImportCompletionDataResponse": { + "description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", + "id": "GoogleCloudRetailV2betaImportCompletionDataResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaImportErrorsConfig": { "description": "Configuration of destination for Import related errors.", "id": "GoogleCloudRetailV2betaImportErrorsConfig", @@ -1381,6 +2043,14 @@ "format": "int64", "type": "string" }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "type": "string" + }, + "requestId": { + "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "type": "string" + }, "successCount": { "description": "Count of entries that were processed successfully.", "format": "int64", @@ -1406,6 +2076,28 @@ "$ref": "GoogleCloudRetailV2betaProductInputConfig", "description": "Required. The desired input location of the data." }, + "notificationPubsubTopic": { + "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "string" + }, + "reconciliationMode": { + "description": "The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL.", + "enum": [ + "RECONCILIATION_MODE_UNSPECIFIED", + "INCREMENTAL", + "FULL" + ], + "enumDescriptions": [ + "Defaults to INCREMENTAL.", + "Inserts new products or updates existing products.", + "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location. Can only be while using BigQuerySource. Add the IAM permission \u201cBigQuery Data Viewer\u201d for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown. This feature is only available for users who have Retail Search enabled. Contact Retail Support (retail-search-support@google.com) if you are interested in using Retail Search." + ], + "type": "string" + }, + "requestId": { + "description": "Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: \"[a-zA-Z0-9_]+\". This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "string" + }, "updateMask": { "description": "Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields.", "format": "google-fieldmask", @@ -1469,6 +2161,33 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaInterval": { + "description": "A floating point interval.", + "id": "GoogleCloudRetailV2betaInterval", + "properties": { + "exclusiveMaximum": { + "description": "Exclusive upper bound.", + "format": "double", + "type": "number" + }, + "exclusiveMinimum": { + "description": "Exclusive lower bound.", + "format": "double", + "type": "number" + }, + "maximum": { + "description": "Inclusive upper bound.", + "format": "double", + "type": "number" + }, + "minimum": { + "description": "Inclusive lower bound.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaListCatalogsResponse": { "description": "Response for CatalogService.ListCatalogs method.", "id": "GoogleCloudRetailV2betaListCatalogsResponse", @@ -1487,6 +2206,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaListProductsResponse": { + "description": "Response message for ProductService.ListProducts method.", + "id": "GoogleCloudRetailV2betaListProductsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "products": { + "description": "The Products.", + "items": { + "$ref": "GoogleCloudRetailV2betaProduct" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPredictRequest": { "description": "Request message for Predict method.", "id": "GoogleCloudRetailV2betaPredictRequest", @@ -1586,7 +2323,7 @@ "type": "number" }, "currencyCode": { - "description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.", + "description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.", "type": "string" }, "originalPrice": { @@ -1598,6 +2335,36 @@ "description": "Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).", "format": "float", "type": "number" + }, + "priceEffectiveTime": { + "description": "The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.", + "format": "google-datetime", + "type": "string" + }, + "priceExpireTime": { + "description": "The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.", + "format": "google-datetime", + "type": "string" + }, + "priceRange": { + "$ref": "GoogleCloudRetailV2betaPriceInfoPriceRange", + "description": "Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaPriceInfoPriceRange": { + "description": "The price range of all variant Product having the same Product.primary_product_id.", + "id": "GoogleCloudRetailV2betaPriceInfoPriceRange", + "properties": { + "originalPrice": { + "$ref": "GoogleCloudRetailV2betaInterval", + "description": "The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id." + }, + "price": { + "$ref": "GoogleCloudRetailV2betaInterval", + "description": "The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id." } }, "type": "object" @@ -1610,9 +2377,13 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2betaCustomAttribute" }, - "description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.", + "description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * Max indexable entries count: 200 by default; 40 for Type.VARIANT. * Max searchable entries count: 30. * For indexable attribute, the key must match the pattern: a-zA-Z0-9*. For example, key0LikeThis or KEY_1_LIKE_THIS.", "type": "object" }, + "audience": { + "$ref": "GoogleCloudRetailV2betaAudience", + "description": "The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product." + }, "availability": { "description": "The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).", "enum": [ @@ -1637,10 +2408,17 @@ "type": "integer" }, "availableTime": { - "description": "The timestamp when this Product becomes available for recommendation.", + "description": "The timestamp when this Product becomes available for SearchService.Search.", "format": "google-datetime", "type": "string" }, + "brands": { + "description": "The brands of the product. A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", + "items": { + "type": "string" + }, + "type": "array" + }, "categories": { "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { @@ -1648,10 +2426,44 @@ }, "type": "array" }, + "collectionMemberIds": { + "description": "The id of the collection members when type is Type.COLLECTION. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", + "items": { + "type": "string" + }, + "type": "array" + }, + "colorInfo": { + "$ref": "GoogleCloudRetailV2betaColorInfo", + "description": "The color of the product. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color)." + }, + "conditions": { + "description": "The condition of the product. Strongly encouraged to use the standard values: \"new\", \"refurbished\", \"used\". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).", + "items": { + "type": "string" + }, + "type": "array" + }, "description": { "description": "Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).", "type": "string" }, + "expireTime": { + "description": "The timestamp when this product becomes unavailable for SearchService.Search. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", + "format": "google-datetime", + "type": "string" + }, + "fulfillmentInfo": { + "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "$ref": "GoogleCloudRetailV2betaFulfillmentInfo" + }, + "type": "array" + }, + "gtin": { + "description": "The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn) or [Product.gtin8](https://schema.org/gtin8) or [Product.gtin12](https://schema.org/gtin12) or [Product.gtin13](https://schema.org/gtin13) or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, "id": { "description": "Immutable. Product identifier, which is the final component of name. For example, this field is \"id_1\", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).", "type": "string" @@ -1663,18 +2475,64 @@ }, "type": "array" }, + "languageCode": { + "description": "Language of the title/description and other string attributes. Use language tags defined by BCP 47. For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", + "type": "string" + }, + "materials": { + "description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", + "items": { + "type": "string" + }, + "type": "array" + }, "name": { "description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be \"default_branch\".", "type": "string" }, - "priceInfo": { - "$ref": "GoogleCloudRetailV2betaPriceInfo", + "patterns": { + "description": "The pattern or graphic print of the product. For example, \"striped\", \"polka dot\", \"paisley\". A maximum of 5 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).", + "items": { + "type": "string" + }, + "type": "array" + }, + "priceInfo": { + "$ref": "GoogleCloudRetailV2betaPriceInfo", "description": "Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." }, "primaryProductId": { "description": "Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).", "type": "string" }, + "promotions": { + "description": "The promotions applied to the product. A maximum of 10 values are allowed per Product.", + "items": { + "$ref": "GoogleCloudRetailV2betaPromotion" + }, + "type": "array" + }, + "publishTime": { + "description": "The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.", + "format": "google-datetime", + "type": "string" + }, + "rating": { + "$ref": "GoogleCloudRetailV2betaRating", + "description": "The rating of this product." + }, + "retrievableFields": { + "description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Maximum number of paths is 20. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "google-fieldmask", + "type": "string" + }, + "sizes": { + "description": "The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in \"US:MENS:M\", \"US\" represents size system; \"MENS\" represents size type; \"M\" represents size value. In \"GIRLS:27\", size system is empty; \"GIRLS\" represents size type; \"27\" represents size value. In \"32 inches\", both size system and size type are empty, while size value is \"32 inches\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497) and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).", + "items": { + "type": "string" + }, + "type": "array" + }, "tags": { "description": "Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0\u20134](https://support.google.com/merchants/answer/6324473).", "items": { @@ -1686,6 +2544,11 @@ "description": "Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).", "type": "string" }, + "ttl": { + "description": "Input only. The TTL (time to live) of the product. If it is set, expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", + "format": "google-duration", + "type": "string" + }, "type": { "description": "Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.", "enum": [ @@ -1705,6 +2568,14 @@ "uri": { "description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", "type": "string" + }, + "variants": { + "description": "Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", + "items": { + "$ref": "GoogleCloudRetailV2betaProduct" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -1773,6 +2644,17 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaPromotion": { + "description": "Promotion information.", + "id": "GoogleCloudRetailV2betaPromotion", + "properties": { + "promotionId": { + "description": "ID of the promotion. For example, \"free gift\". The value value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: a-zA-Z*. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPurchaseTransaction": { "description": "A transaction represents the entire purchase transaction.", "id": "GoogleCloudRetailV2betaPurchaseTransaction", @@ -1836,6 +2718,31 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaRating": { + "description": "The rating of a Product.", + "id": "GoogleCloudRetailV2betaRating", + "properties": { + "averageRating": { + "description": "The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "float", + "type": "number" + }, + "ratingCount": { + "description": "The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "type": "integer" + }, + "ratingHistogram": { + "description": "List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaRejoinUserEventsMetadata": { "description": "Metadata for RejoinUserEvents method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsMetadata", @@ -1875,6 +2782,459 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest": { + "description": "Request message for RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeTime": { + "description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "type": { + "description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequest": { + "description": "Request message for SearchService.Search method.", + "id": "GoogleCloudRetailV2betaSearchRequest", + "properties": { + "boostSpec": { + "$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpec", + "description": "Boost specification to boost certain products. See more details at this [user guide](/retail/private/docs/boosting)." + }, + "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 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.", + "type": "string" + }, + "dynamicFacetSpec": { + "$ref": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", + "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature." + }, + "facetSpecs": { + "description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpec" + }, + "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](/retail/private/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "type": "string" + }, + "offset": { + "description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + }, + "orderBy": { + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](/retail/private/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "type": "string" + }, + "pageCategories": { + "description": "The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "pageSize": { + "description": "Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "query": { + "description": "Raw search query.", + "type": "string" + }, + "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](/retail/private/docs/result-size#query_expansion)." + }, + "userInfo": { + "$ref": "GoogleCloudRetailV2betaUserInfo", + "description": "User information." + }, + "variantRollupKeys": { + "description": "The keys to fetch and rollup the matching variant Products attributes. The attributes from all the matching variant Products are merged and de-duplicated. Notice that rollup variant Products attributes will lead to extra query latency. Maximum number of keys is 10. For Product.fulfillment_info, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.filfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.PICKUP_IN_STORE. * shipToStore.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SHIP_TO_STORE. * sameDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.SAME_DAY_DELIVERY. * nextDayDelivery.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * customFulfillment1.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_1. * customFulfillment2.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_2. * customFulfillment3.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_3. * customFulfillment4.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_4. * customFulfillment5.id, where id is any FulfillmentInfo.ids for type FulfillmentInfo.Type.CUSTOM_TYPE_5. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "visitorId": { + "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequestBoostSpec": { + "description": "Boost specification to boost certain items.", + "id": "GoogleCloudRetailV2betaSearchRequestBoostSpec", + "properties": { + "conditionBoostSpecs": { + "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.", + "items": { + "$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec": { + "description": "Boost applies to products which match a condition.", + "id": "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec", + "properties": { + "boost": { + "description": "Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", + "format": "float", + "type": "number" + }, + "condition": { + "description": "An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec": { + "description": "The specifications of dynamically generated facets.", + "id": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", + "properties": { + "mode": { + "description": "Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "Default value.", + "Disable Dynamic Facet.", + "Automatic mode built by Google Retail Search." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequestFacetSpec": { + "description": "A facet specification to perform faceted search.", + "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.", + "type": "boolean" + }, + "excludedFilterKeys": { + "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet \"Red\" and 200 products with color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and have \"colorFamilies\" as FacetKey.key will by default return the \"Red\" with count 100. If this field contains \"colorFamilies\", then the query returns both the \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "facetKey": { + "$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey", + "description": "Required. The facet key specification." + }, + "limit": { + "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey": { + "description": "Specifies how a facet is computed.", + "id": "GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey", + "properties": { + "contains": { + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "intervals": { + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 30.", + "items": { + "$ref": "GoogleCloudRetailV2betaInterval" + }, + "type": "array" + }, + "key": { + "description": "Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = *# The Product.brands. * \"brands\"; *# The Product.categories. * \"categories\"; *# The Audience.genders. * | \"genders\"; *# The Audience.age_groups. * | \"ageGroups\"; *# The Product.availability. Value is one of * *# \"IN_STOCK\", \"OUT_OF_STOCK\", PREORDER\", \"BACKORDER\". * | \"availability\"; *# The ColorInfo.color_families. * | \"colorFamilies\"; *# The ColorInfo.colors. * | \"colors\"; *# The Product.sizes. * | \"sizes\"; *# The Product.materials. * | \"materials\"; *# The Product.patterns. * | \"patterns\"; *# The Product.conditions. * | \"conditions\"; *# The textual custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are textual. * *# map. * | \"attributes.key\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.PICKUP_IN_STORE. * | \"pickupInStore\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SHIP_TO_STORE. * | \"shipToStore\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.SAME_DAY_DELIVERY. * | \"sameDayDelivery\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.NEXT_DAY_DELIVERY. * | \"nextDayDelivery\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_1. * | \"customFulfillment1\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_2. * | \"customFulfillment2\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_3. * | \"customFulfillment3\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_4. * | \"customFulfillment4\"; *# The FulfillmentInfo.ids for type *# FulfillmentInfo.Type.CUSTOM_TYPE_5. * | \"customFulfillment5\"; * numerical_field = *# The PriceInfo.price. * \"price\"; *# The discount. Computed by (original_price-price)/price * \"discount\"; *# The Rating.average_rating. * \"rating\"; *# The Rating.rating_count. * \"ratingCount\"; *# The numerical custom attribute in Product object. Key can * *# be any key in the Product.attributes map * *# if the attribute values are numerical. * | \"attributes.key\";", + "type": "string" + }, + "orderBy": { + "description": "The order in which Facet.values are returned. Allowed values are: * \"count desc\", which means order by Facet.FacetValue.count descending. * \"value desc\", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", + "type": "string" + }, + "prefixes": { + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "description": "The query that is used to compute facet for the given facet key. When provided, it 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, FacetValue.value will be always \"1\" and FacetValue.count will be the number of results that matches 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\".", + "type": "string" + }, + "restrictedValues": { + "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec": { + "description": "Specification to determine under which conditions query expansion should occur.", + "id": "GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec", + "properties": { + "condition": { + "description": "The condition under which query expansion should occur. Default to Condition.DISABLED.", + "enum": [ + "CONDITION_UNSPECIFIED", + "DISABLED", + "AUTO" + ], + "enumDescriptions": [ + "Unspecified query expansion condition. This defaults to Condition.DISABLED.", + "Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", + "Automatic query expansion built by Google Retail Search." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchResponse": { + "description": "Response message for SearchService.Search method.", + "id": "GoogleCloudRetailV2betaSearchResponse", + "properties": { + "attributionToken": { + "description": "A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.", + "type": "string" + }, + "correctedQuery": { + "description": "If spell correction applies, the corrected query. Otherwise, empty.", + "type": "string" + }, + "facets": { + "description": "Results of facets requested by user.", + "items": { + "$ref": "GoogleCloudRetailV2betaSearchResponseFacet" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "queryExpansionInfo": { + "$ref": "GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo", + "description": "Query expansion information for the returned results." + }, + "redirectUri": { + "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.", + "type": "string" + }, + "results": { + "description": "A list of matched items. The order represents the ranking.", + "items": { + "$ref": "GoogleCloudRetailV2betaSearchResponseSearchResult" + }, + "type": "array" + }, + "totalSize": { + "description": "The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchResponseFacet": { + "description": "A facet result.", + "id": "GoogleCloudRetailV2betaSearchResponseFacet", + "properties": { + "dynamicFacet": { + "description": "Whether the facet is dynamically generated.", + "type": "boolean" + }, + "key": { + "description": "The key for this facet. E.g., \"colorFamilies\" or \"price\" or \"attributes.attr1\".", + "type": "string" + }, + "values": { + "description": "The facet values for this field.", + "items": { + "$ref": "GoogleCloudRetailV2betaSearchResponseFacetFacetValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchResponseFacetFacetValue": { + "description": "A facet value which contains value names and their count.", + "id": "GoogleCloudRetailV2betaSearchResponseFacetFacetValue", + "properties": { + "count": { + "description": "Number of items that have this facet value.", + "format": "int64", + "type": "string" + }, + "interval": { + "$ref": "GoogleCloudRetailV2betaInterval", + "description": "Interval value for a facet, such as [10, 20) for facet \"price\"." + }, + "value": { + "description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo": { + "description": "Information describing query expansion including whether expansion has occurred.", + "id": "GoogleCloudRetailV2betaSearchResponseQueryExpansionInfo", + "properties": { + "expandedQuery": { + "description": "Bool describing whether query expansion has occurred.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSearchResponseSearchResult": { + "description": "Represents the search results.", + "id": "GoogleCloudRetailV2betaSearchResponseSearchResult", + "properties": { + "id": { + "description": "Product.id of the searched Product.", + "type": "string" + }, + "matchingVariantCount": { + "description": "The count of matched variant Products.", + "format": "int32", + "type": "integer" + }, + "matchingVariantFields": { + "additionalProperties": { + "format": "google-fieldmask", + "type": "string" + }, + "description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", + "type": "object" + }, + "product": { + "$ref": "GoogleCloudRetailV2betaProduct", + "description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." + }, + "variantRollupValues": { + "additionalProperties": { + "type": "any" + }, + "description": "The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by \"colorFamilies:ANY(\\\"red\\\")\" and rollup \"colorFamilies\", only \"red\" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors \"red\" and \"blue\", the rollup values are { key: \"colorFamilies\" value { list_value { values { string_value: \"red\" } values { string_value: \"blue\" } } } } For Product.fulfillment_info, the rollup values is a double value with type google.protobuf.Value. For example, {key: \"pickupInStore.store1\" value { number_value: 10 }} means a there are 10 variants in this product are available in the store \"store1\".", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSetDefaultBranchRequest": { + "description": "Request message to set a specified branch as new default_branch.", + "id": "GoogleCloudRetailV2betaSetDefaultBranchRequest", + "properties": { + "branchId": { + "description": "The final component of the resource name of a branch. This field must be one of \"0\", \"1\" or \"2\". Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "note": { + "description": "Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryMetadata": { + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryRequest": { + "description": "Request message for SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, an INVALID_ARGUMENT error is returned if the Product is not found.", + "type": "boolean" + }, + "inventory": { + "$ref": "GoogleCloudRetailV2betaProduct", + "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead." + }, + "setMask": { + "description": "Indicates which inventory fields in the provided Product to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", + "format": "google-fieldmask", + "type": "string" + }, + "setTime": { + "description": "The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaSetInventoryResponse": { + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "id": "GoogleCloudRetailV2betaSetInventoryResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaUserEvent": { "description": "UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.", "id": "GoogleCloudRetailV2betaUserEvent", @@ -1887,13 +3247,17 @@ "type": "object" }, "attributionToken": { - "description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", + "description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", "type": "string" }, "cartId": { "description": "The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.", "type": "string" }, + "completionDetail": { + "$ref": "GoogleCloudRetailV2betaCompletionDetail", + "description": "The main completion details related to the event. In a `completion` event, this field represents the completions returned to the end user and the clicked completion by the end user. In a `search` event, it represents the search event happens after clicking completion." + }, "eventTime": { "description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", "format": "google-datetime", @@ -1910,6 +3274,19 @@ }, "type": "array" }, + "filter": { + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "offset": { + "description": "An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "format": "int32", + "type": "integer" + }, + "orderBy": { + "description": "The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, "pageCategories": { "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { @@ -1937,7 +3314,11 @@ "type": "string" }, "searchQuery": { - "description": "The user's search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "sessionId": { + "description": "A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix.", "type": "string" }, "uri": { @@ -2014,11 +3395,11 @@ "type": "boolean" }, "ipAddress": { - "description": "The end user's IP address. Required for getting SearchRespons.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userAgent": { - "description": "User agent as included in the HTTP header. Required for getting SearchRespons.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "User agent as included in the HTTP header. Required for getting SearchResponse.sponsored_results. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userId": { @@ -2113,6 +3494,28 @@ } }, "type": "object" + }, + "GoogleTypeDate": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.", + "id": "GoogleTypeDate", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/googleapiclient/discovery_cache/documents/run.v1.json b/googleapiclient/discovery_cache/documents/run.v1.json index 36e5de5436a..a73fafda7ba 100644 --- a/googleapiclient/discovery_cache/documents/run.v1.json +++ b/googleapiclient/discovery_cache/documents/run.v1.json @@ -184,7 +184,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -204,7 +204,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -352,7 +352,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -372,7 +372,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -487,7 +487,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -507,7 +507,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -577,7 +577,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -597,7 +597,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -745,7 +745,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -765,7 +765,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -997,7 +997,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -1017,7 +1017,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -1165,7 +1165,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -1185,7 +1185,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -1300,7 +1300,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -1320,7 +1320,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -1390,7 +1390,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -1410,7 +1410,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -1589,7 +1589,7 @@ ], "parameters": { "continue": { - "description": "Optional encoded string to continue paging.", + "description": "Optional. Encoded string to continue paging.", "location": "query", "type": "string" }, @@ -1609,7 +1609,7 @@ "type": "string" }, "limit": { - "description": "The maximum number of records that should be returned.", + "description": "Optional. The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" @@ -1736,7 +1736,7 @@ } } }, - "revision": "20210628", + "revision": "20210716", "rootUrl": "https://run.googleapis.com/", "schemas": { "Addressable": { @@ -2164,7 +2164,7 @@ "type": "array" }, "url": { - "description": "Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping. +optional", + "description": "Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping.", "type": "string" } }, @@ -2891,7 +2891,7 @@ "id": "RevisionSpec", "properties": { "containerConcurrency": { - "description": "(Optional) ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler.", + "description": "Optional. ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler.", "format": "int32", "type": "integer" }, @@ -2936,7 +2936,7 @@ "type": "string" }, "logUrl": { - "description": "Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config. +optional", + "description": "Optional. Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config.", "type": "string" }, "observedGeneration": { @@ -3364,7 +3364,7 @@ "type": "string" }, "latestRevision": { - "description": "LatestRevision may be optionally provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty. +optional", + "description": "Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty.", "type": "boolean" }, "percent": { @@ -3377,7 +3377,7 @@ "type": "string" }, "tag": { - "description": "Tag is optionally used to expose a dedicated url for referencing this target exclusively. +optional", + "description": "Optional. Tag is used to expose a dedicated url for referencing this target exclusively.", "type": "string" }, "url": { diff --git a/googleapiclient/discovery_cache/documents/run.v1alpha1.json b/googleapiclient/discovery_cache/documents/run.v1alpha1.json index 3da6051fc8e..4f3baf71bbc 100644 --- a/googleapiclient/discovery_cache/documents/run.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/run.v1alpha1.json @@ -268,7 +268,7 @@ } } }, - "revision": "20210628", + "revision": "20210716", "rootUrl": "https://run.googleapis.com/", "schemas": { "ConfigMapEnvSource": { diff --git a/googleapiclient/discovery_cache/documents/runtimeconfig.v1.json b/googleapiclient/discovery_cache/documents/runtimeconfig.v1.json index 43ed704ff79..1151a3ed187 100644 --- a/googleapiclient/discovery_cache/documents/runtimeconfig.v1.json +++ b/googleapiclient/discovery_cache/documents/runtimeconfig.v1.json @@ -210,7 +210,7 @@ } } }, - "revision": "20210712", + "revision": "20210726", "rootUrl": "https://runtimeconfig.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json b/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json index 13d44cee727..66d45586971 100644 --- a/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json @@ -805,7 +805,7 @@ } } }, - "revision": "20210712", + "revision": "20210719", "rootUrl": "https://runtimeconfig.googleapis.com/", "schemas": { "Binding": { diff --git a/googleapiclient/discovery_cache/documents/safebrowsing.v4.json b/googleapiclient/discovery_cache/documents/safebrowsing.v4.json index 451bae85787..dc8b152be37 100644 --- a/googleapiclient/discovery_cache/documents/safebrowsing.v4.json +++ b/googleapiclient/discovery_cache/documents/safebrowsing.v4.json @@ -261,7 +261,7 @@ } } }, - "revision": "20210717", + "revision": "20210721", "rootUrl": "https://safebrowsing.googleapis.com/", "schemas": { "GoogleProtobufEmpty": { diff --git a/googleapiclient/discovery_cache/documents/script.v1.json b/googleapiclient/discovery_cache/documents/script.v1.json index fe4fa71716f..e2db03c5570 100644 --- a/googleapiclient/discovery_cache/documents/script.v1.json +++ b/googleapiclient/discovery_cache/documents/script.v1.json @@ -887,7 +887,7 @@ } } }, - "revision": "20210709", + "revision": "20210717", "rootUrl": "https://script.googleapis.com/", "schemas": { "Content": { diff --git a/googleapiclient/discovery_cache/documents/searchconsole.v1.json b/googleapiclient/discovery_cache/documents/searchconsole.v1.json index af51e000262..d0cd09cc608 100644 --- a/googleapiclient/discovery_cache/documents/searchconsole.v1.json +++ b/googleapiclient/discovery_cache/documents/searchconsole.v1.json @@ -373,7 +373,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://searchconsole.googleapis.com/", "schemas": { "ApiDataRow": { diff --git a/googleapiclient/discovery_cache/documents/secretmanager.v1.json b/googleapiclient/discovery_cache/documents/secretmanager.v1.json index 24a657926fd..7c7e83ff094 100644 --- a/googleapiclient/discovery_cache/documents/secretmanager.v1.json +++ b/googleapiclient/discovery_cache/documents/secretmanager.v1.json @@ -643,7 +643,7 @@ } } }, - "revision": "20210710", + "revision": "20210716", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { diff --git a/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json b/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json index 7b7d9c9b640..1117795f6a7 100644 --- a/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json @@ -628,7 +628,7 @@ } } }, - "revision": "20210710", + "revision": "20210716", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { diff --git a/googleapiclient/discovery_cache/documents/securitycenter.v1.json b/googleapiclient/discovery_cache/documents/securitycenter.v1.json index 880b920bb21..01047d83fe6 100644 --- a/googleapiclient/discovery_cache/documents/securitycenter.v1.json +++ b/googleapiclient/discovery_cache/documents/securitycenter.v1.json @@ -1816,7 +1816,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Asset": { @@ -2023,6 +2023,28 @@ "description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", "type": "string" }, + "findingClass": { + "description": "The class of the finding.", + "enum": [ + "FINDING_CLASS_UNSPECIFIED", + "THREAT", + "VULNERABILITY", + "MISCONFIGURATION", + "OBSERVATION" + ], + "enumDescriptions": [ + "Unspecified finding class.", + "Describes unwanted or malicious activity.", + "Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", + "Describes a potential weakness in cloud resource/asset configuration that increases risk.", + "Describes a security observation that is for informational purposes." + ], + "type": "string" + }, + "indicator": { + "$ref": "Indicator", + "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" + }, "name": { "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", "type": "string" @@ -2588,6 +2610,27 @@ }, "type": "object" }, + "Indicator": { + "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise", + "id": "Indicator", + "properties": { + "domains": { + "description": "List of domains associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipAddresses": { + "description": "List of ip addresses associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListAssetsResponse": { "description": "Response message for listing assets.", "id": "ListAssetsResponse", diff --git a/googleapiclient/discovery_cache/documents/securitycenter.v1beta1.json b/googleapiclient/discovery_cache/documents/securitycenter.v1beta1.json index 1427c0e50d9..885ddcb4ab0 100644 --- a/googleapiclient/discovery_cache/documents/securitycenter.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/securitycenter.v1beta1.json @@ -896,7 +896,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Asset": { @@ -1094,6 +1094,28 @@ "description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", "type": "string" }, + "findingClass": { + "description": "The class of the finding.", + "enum": [ + "FINDING_CLASS_UNSPECIFIED", + "THREAT", + "VULNERABILITY", + "MISCONFIGURATION", + "OBSERVATION" + ], + "enumDescriptions": [ + "Unspecified finding class.", + "Describes unwanted or malicious activity.", + "Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", + "Describes a potential weakness in cloud resource/asset configuration that increases risk.", + "Describes a security observation that is for informational purposes." + ], + "type": "string" + }, + "indicator": { + "$ref": "Indicator", + "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" + }, "name": { "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", "type": "string" @@ -1714,6 +1736,27 @@ }, "type": "object" }, + "Indicator": { + "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise", + "id": "Indicator", + "properties": { + "domains": { + "description": "List of domains associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipAddresses": { + "description": "List of ip addresses associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListAssetsResponse": { "description": "Response message for listing assets.", "id": "ListAssetsResponse", diff --git a/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json b/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json index 44c5a479395..af088a45f79 100644 --- a/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json @@ -1328,7 +1328,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Config": { @@ -1508,6 +1508,28 @@ "description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", "type": "string" }, + "findingClass": { + "description": "The class of the finding.", + "enum": [ + "FINDING_CLASS_UNSPECIFIED", + "THREAT", + "VULNERABILITY", + "MISCONFIGURATION", + "OBSERVATION" + ], + "enumDescriptions": [ + "Unspecified finding class.", + "Describes unwanted or malicious activity.", + "Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", + "Describes a potential weakness in cloud resource/asset configuration that increases risk.", + "Describes a security observation that is for informational purposes." + ], + "type": "string" + }, + "indicator": { + "$ref": "Indicator", + "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" + }, "name": { "description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", "type": "string" @@ -1896,6 +1918,27 @@ }, "type": "object" }, + "Indicator": { + "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise", + "id": "Indicator", + "properties": { + "domains": { + "description": "List of domains associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipAddresses": { + "description": "List of ip addresses associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SecurityCenterSettings": { "description": "Resource capturing the settings for Security Center.", "id": "SecurityCenterSettings", diff --git a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json index 88f953b0060..dd76f1044d3 100644 --- a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json +++ b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json @@ -542,7 +542,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "AddTenantProjectRequest": { diff --git a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json index 8a34f48e91d..49ffa122a12 100644 --- a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json @@ -500,7 +500,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "Api": { diff --git a/googleapiclient/discovery_cache/documents/servicedirectory.v1.json b/googleapiclient/discovery_cache/documents/servicedirectory.v1.json index a78dd8a9847..963806e1c4d 100644 --- a/googleapiclient/discovery_cache/documents/servicedirectory.v1.json +++ b/googleapiclient/discovery_cache/documents/servicedirectory.v1.json @@ -883,7 +883,7 @@ } } }, - "revision": "20210707", + "revision": "20210716", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { @@ -926,7 +926,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory.", + "description": "Optional. Annotations for the endpoint. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 512 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/) Annotations that fails to meet these requirements are rejected. Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory.", "type": "object" }, "name": { @@ -1169,7 +1169,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system annotations managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory.", + "description": "Optional. Annotations for the service. This data can be consumed by service clients. Restrictions: * The entire annotations dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Annotations that go beyond this limit are rejected * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Annotations that fails to meet these requirements are rejected Note: This field is equivalent to the `metadata` field in the v1beta1 API. They have the same syntax and read/write to the same location in Service Directory.", "type": "object" }, "endpoints": { diff --git a/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json b/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json index f819ef5ced7..d9b7c6592f5 100644 --- a/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/servicedirectory.v1beta1.json @@ -883,7 +883,7 @@ } } }, - "revision": "20210707", + "revision": "20210716", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { @@ -932,7 +932,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory.", + "description": "Optional. Metadata for the endpoint. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 512 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory.", "type": "object" }, "name": { @@ -1211,7 +1211,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for system metadata managed by Service Directory. If the user tries to write to these keyspaces, those entries are silently ignored by the system Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory.", + "description": "Optional. Metadata for the service. This data can be consumed by service clients. Restrictions: * The entire metadata dictionary may contain up to 2000 characters, spread accoss all key-value pairs. Metadata that goes beyond this limit are rejected * Valid metadata keys have two segments: an optional prefix and name, separated by a slash (/). The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), not longer than 253 characters in total, followed by a slash (/). Metadata that fails to meet these requirements are rejected Note: This field is equivalent to the `annotations` field in the v1 API. They have the same syntax and read/write to the same location in Service Directory.", "type": "object" }, "name": { diff --git a/googleapiclient/discovery_cache/documents/servicemanagement.v1.json b/googleapiclient/discovery_cache/documents/servicemanagement.v1.json index 1178a2b7fef..001a664f62a 100644 --- a/googleapiclient/discovery_cache/documents/servicemanagement.v1.json +++ b/googleapiclient/discovery_cache/documents/servicemanagement.v1.json @@ -829,7 +829,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://servicemanagement.googleapis.com/", "schemas": { "Advice": { diff --git a/googleapiclient/discovery_cache/documents/servicenetworking.v1.json b/googleapiclient/discovery_cache/documents/servicenetworking.v1.json index 5eeb7330556..8bd3dc13b63 100644 --- a/googleapiclient/discovery_cache/documents/servicenetworking.v1.json +++ b/googleapiclient/discovery_cache/documents/servicenetworking.v1.json @@ -860,7 +860,7 @@ } } }, - "revision": "20210717", + "revision": "20210721", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { diff --git a/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json b/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json index 6de3b7a4656..e91792b3029 100644 --- a/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json +++ b/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json @@ -307,7 +307,7 @@ } } }, - "revision": "20210717", + "revision": "20210721", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { diff --git a/googleapiclient/discovery_cache/documents/serviceusage.v1.json b/googleapiclient/discovery_cache/documents/serviceusage.v1.json index 301872a8c36..8d328a87fcd 100644 --- a/googleapiclient/discovery_cache/documents/serviceusage.v1.json +++ b/googleapiclient/discovery_cache/documents/serviceusage.v1.json @@ -426,7 +426,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AdminQuotaPolicy": { diff --git a/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json b/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json index 8338eda1ef5..b336712f51a 100644 --- a/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json @@ -959,7 +959,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AdminQuotaPolicy": { diff --git a/googleapiclient/discovery_cache/documents/sheets.v4.json b/googleapiclient/discovery_cache/documents/sheets.v4.json index ade1049cd70..7e7d3cfbbe7 100644 --- a/googleapiclient/discovery_cache/documents/sheets.v4.json +++ b/googleapiclient/discovery_cache/documents/sheets.v4.json @@ -870,7 +870,7 @@ } } }, - "revision": "20210712", + "revision": "20210719", "rootUrl": "https://sheets.googleapis.com/", "schemas": { "AddBandingRequest": { diff --git a/googleapiclient/discovery_cache/documents/slides.v1.json b/googleapiclient/discovery_cache/documents/slides.v1.json index 8cc3656f338..8b7688b3b86 100644 --- a/googleapiclient/discovery_cache/documents/slides.v1.json +++ b/googleapiclient/discovery_cache/documents/slides.v1.json @@ -313,7 +313,7 @@ } } }, - "revision": "20210715", + "revision": "20210723", "rootUrl": "https://slides.googleapis.com/", "schemas": { "AffineTransform": { diff --git a/googleapiclient/discovery_cache/documents/smartdevicemanagement.v1.json b/googleapiclient/discovery_cache/documents/smartdevicemanagement.v1.json index 7327b9cda49..b811638e13a 100644 --- a/googleapiclient/discovery_cache/documents/smartdevicemanagement.v1.json +++ b/googleapiclient/discovery_cache/documents/smartdevicemanagement.v1.json @@ -355,7 +355,7 @@ } } }, - "revision": "20210705", + "revision": "20210717", "rootUrl": "https://smartdevicemanagement.googleapis.com/", "schemas": { "GoogleHomeEnterpriseSdmV1Device": { diff --git a/googleapiclient/discovery_cache/documents/speech.v1.json b/googleapiclient/discovery_cache/documents/speech.v1.json index c81e369570a..de56af24dc1 100644 --- a/googleapiclient/discovery_cache/documents/speech.v1.json +++ b/googleapiclient/discovery_cache/documents/speech.v1.json @@ -212,7 +212,7 @@ } } }, - "revision": "20210706", + "revision": "20210714", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ListOperationsResponse": { diff --git a/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json b/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json index 78243a59745..04248064628 100644 --- a/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json +++ b/googleapiclient/discovery_cache/documents/speech.v1p1beta1.json @@ -524,7 +524,7 @@ } } }, - "revision": "20210706", + "revision": "20210714", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ClassItem": { @@ -547,7 +547,7 @@ "description": "Required. The custom class to create." }, "customClassId": { - "description": "The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "description": "Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", "type": "string" } }, @@ -562,7 +562,7 @@ "description": "Required. The phrase set to create." }, "phraseSetId": { - "description": "The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "description": "Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", "type": "string" } }, @@ -596,6 +596,25 @@ "properties": {}, "type": "object" }, + "Entry": { + "description": "A single replacement configuration.", + "id": "Entry", + "properties": { + "caseSensitive": { + "description": "Whether the search is case sensitive.", + "type": "boolean" + }, + "replace": { + "description": "What to replace with. Max length is 100 characters.", + "type": "string" + }, + "search": { + "description": "What to replace. Max length is 100 characters.", + "type": "string" + } + }, + "type": "object" + }, "ListCustomClassesResponse": { "description": "Message returned to the client by the `ListCustomClasses` method.", "id": "ListCustomClassesResponse", @@ -931,6 +950,10 @@ }, "type": "array" }, + "transcriptNormalization": { + "$ref": "TranscriptNormalization", + "description": "Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts." + }, "useEnhanced": { "description": "Set to true to use an enhanced model for speech recognition. If `use_enhanced` is set to true and the `model` field is not set, then an appropriate enhanced model is chosen if an enhanced model exists for the audio. If `use_enhanced` is true and an enhanced version of the specified model does not exist, then the speech is recognized using the standard version of the specified model.", "type": "boolean" @@ -1222,6 +1245,17 @@ }, "type": "object" }, + "TranscriptNormalization": { + "description": "Transcription normalization configuration. Use transcription normalization to automatically replace parts of the transcript with phrases of your choosing. For StreamingRecognize, this normalization only applies to stable partial transcripts (stability > 0.8) and final transcripts.", + "id": "TranscriptNormalization", + "properties": { + "entries": { + "$ref": "Entry", + "description": "A list of replacement entries. We will perform replacement with one entry at a time. For example, the second entry in [\"cat\" => \"dog\", \"mountain cat\" => \"mountain dog\"] will never be applied because we will always process the first entry before it. At most 100 entries." + } + }, + "type": "object" + }, "TranscriptOutputConfig": { "description": "Specifies an optional destination for the recognition results.", "id": "TranscriptOutputConfig", diff --git a/googleapiclient/discovery_cache/documents/speech.v2beta1.json b/googleapiclient/discovery_cache/documents/speech.v2beta1.json index 8f6bc9e1c5e..579a81c3587 100644 --- a/googleapiclient/discovery_cache/documents/speech.v2beta1.json +++ b/googleapiclient/discovery_cache/documents/speech.v2beta1.json @@ -184,7 +184,7 @@ } } }, - "revision": "20210706", + "revision": "20210714", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ListOperationsResponse": { diff --git a/googleapiclient/discovery_cache/documents/sqladmin.v1.json b/googleapiclient/discovery_cache/documents/sqladmin.v1.json index 3efd399d396..98d9701a3df 100644 --- a/googleapiclient/discovery_cache/documents/sqladmin.v1.json +++ b/googleapiclient/discovery_cache/documents/sqladmin.v1.json @@ -108,207 +108,1871 @@ }, "protocol": "rest", "resources": { + "backupRuns": { + "methods": { + "delete": { + "description": "Deletes the backup taken by a backup run.", + "flatPath": "v1/projects/{project}/instances/{instance}/backupRuns/{id}", + "httpMethod": "DELETE", + "id": "sql.backupRuns.delete", + "parameterOrder": [ + "project", + "instance", + "id" + ], + "parameters": { + "id": { + "description": "The ID of the backup run to delete. To find a backup run ID, use the list method.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/backupRuns/{id}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "description": "Retrieves a resource containing information about a backup run.", + "flatPath": "v1/projects/{project}/instances/{instance}/backupRuns/{id}", + "httpMethod": "GET", + "id": "sql.backupRuns.get", + "parameterOrder": [ + "project", + "instance", + "id" + ], + "parameters": { + "id": { + "description": "The ID of this backup run.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/backupRuns/{id}", + "response": { + "$ref": "BackupRun" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "description": "Creates a new backup run on demand.", + "flatPath": "v1/projects/{project}/instances/{instance}/backupRuns", + "httpMethod": "POST", + "id": "sql.backupRuns.insert", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/backupRuns", + "request": { + "$ref": "BackupRun" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "description": "Lists all backup runs associated with the project or a given instance and configuration in the reverse chronological order of the backup initiation time.", + "flatPath": "v1/projects/{project}/instances/{instance}/backupRuns", + "httpMethod": "GET", + "id": "sql.backupRuns.list", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID, or \"-\" for all instances. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Maximum number of backup runs per response.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/backupRuns", + "response": { + "$ref": "BackupRunsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "connect": { + "methods": { + "generateEphemeralCert": { + "description": "Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.", + "flatPath": "v1/projects/{project}/instances/{instance}:generateEphemeralCert", + "httpMethod": "POST", + "id": "sql.connect.generateEphemeral", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}:generateEphemeralCert", + "request": { + "$ref": "GenerateEphemeralCertRequest" + }, + "response": { + "$ref": "GenerateEphemeralCertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "description": "Retrieves connect settings about a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/connectSettings", + "httpMethod": "GET", + "id": "sql.connect.get", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "readTime": { + "description": "Optional. Optional snapshot read timestamp to trade freshness for performance.", + "format": "google-datetime", + "location": "query", + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/connectSettings", + "response": { + "$ref": "ConnectSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "databases": { + "methods": { + "delete": { + "description": "Deletes a database from a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "DELETE", + "id": "sql.databases.delete", + "parameterOrder": [ + "project", + "instance", + "database" + ], + "parameters": { + "database": { + "description": "Name of the database to be deleted in the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/databases/{database}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "description": "Retrieves a resource containing information about a database inside a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "GET", + "id": "sql.databases.get", + "parameterOrder": [ + "project", + "instance", + "database" + ], + "parameters": { + "database": { + "description": "Name of the database in the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/databases/{database}", + "response": { + "$ref": "Database" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "description": "Inserts a resource containing information about a database inside a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/databases", + "httpMethod": "POST", + "id": "sql.databases.insert", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/databases", + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "description": "Lists databases in the specified Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/databases", + "httpMethod": "GET", + "id": "sql.databases.list", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/databases", + "response": { + "$ref": "DatabasesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "patch": { + "description": "Partially updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.", + "flatPath": "v1/projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "PATCH", + "id": "sql.databases.patch", + "parameterOrder": [ + "project", + "instance", + "database" + ], + "parameters": { + "database": { + "description": "Name of the database to be updated in the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/databases/{database}", + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "description": "Updates a resource containing information about a database inside a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "PUT", + "id": "sql.databases.update", + "parameterOrder": [ + "project", + "instance", + "database" + ], + "parameters": { + "database": { + "description": "Name of the database to be updated in the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/databases/{database}", + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "flags": { + "methods": { + "list": { + "description": "Lists all available database flags for Cloud SQL instances.", + "flatPath": "v1/flags", + "httpMethod": "GET", + "id": "sql.flags.list", + "parameterOrder": [], + "parameters": { + "databaseVersion": { + "description": "Database type and version you want to retrieve flags for. By default, this method returns flags for all database types and versions.", + "location": "query", + "type": "string" + } + }, + "path": "v1/flags", + "response": { + "$ref": "FlagsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, "instances": { + "methods": { + "addServerCa": { + "description": "Adds a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in.", + "flatPath": "v1/projects/{project}/instances/{instance}/addServerCa", + "httpMethod": "POST", + "id": "sql.instances.addServerCa", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/addServerCa", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "clone": { + "description": "Creates a Cloud SQL instance as a clone of the source instance. Using this operation might cause your instance to restart.", + "flatPath": "v1/projects/{project}/instances/{instance}/clone", + "httpMethod": "POST", + "id": "sql.instances.clone", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "The ID of the Cloud SQL instance to be cloned (source). This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the source as well as the clone Cloud SQL instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/clone", + "request": { + "$ref": "InstancesCloneRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "delete": { + "description": "Deletes a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}", + "httpMethod": "DELETE", + "id": "sql.instances.delete", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance to be deleted.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "demoteMaster": { + "description": "Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.", + "flatPath": "v1/projects/{project}/instances/{instance}/demoteMaster", + "httpMethod": "POST", + "id": "sql.instances.demoteMaster", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/demoteMaster", + "request": { + "$ref": "InstancesDemoteMasterRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "export": { + "description": "Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL dump or CSV file.", + "flatPath": "v1/projects/{project}/instances/{instance}/export", + "httpMethod": "POST", + "id": "sql.instances.export", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance to be exported.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/export", + "request": { + "$ref": "InstancesExportRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "failover": { + "description": "Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the Overview of high availability page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/failover", + "httpMethod": "POST", + "id": "sql.instances.failover", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the read replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/failover", + "request": { + "$ref": "InstancesFailoverRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "description": "Retrieves a resource containing information about a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}", + "httpMethod": "GET", + "id": "sql.instances.get", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}", + "response": { + "$ref": "DatabaseInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "import": { + "description": "Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud Storage.", + "flatPath": "v1/projects/{project}/instances/{instance}/import", + "httpMethod": "POST", + "id": "sql.instances.import", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/import", + "request": { + "$ref": "InstancesImportRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "description": "Creates a new Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances", + "httpMethod": "POST", + "id": "sql.instances.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Project ID of the project to which the newly created Cloud SQL instances should belong.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances", + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "description": "Lists instances under a given project.", + "flatPath": "v1/projects/{project}/instances", + "httpMethod": "GET", + "id": "sql.instances.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. The expression is in the form of field:value. For example, 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per their JSON representation, such as 'settings.userLabels.auto_start:true'. Multiple filter queries are space-separated. For example. 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results to return per response.", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID of the project for which to list Cloud SQL instances.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances", + "response": { + "$ref": "InstancesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "listServerCas": { + "description": "Lists all of the trusted Certificate Authorities (CAs) for the specified instance. There can be up to three CAs listed: the CA that was used to sign the certificate that is currently in use, a CA that has been added but not yet used to sign a certificate, and a CA used to sign a certificate that has previously rotated out.", + "flatPath": "v1/projects/{project}/instances/{instance}/listServerCas", + "httpMethod": "GET", + "id": "sql.instances.listServerCas", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/listServerCas", + "response": { + "$ref": "InstancesListServerCasResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "patch": { + "description": "Updates settings of a Cloud SQL instance. This method supports patch semantics.", + "flatPath": "v1/projects/{project}/instances/{instance}", + "httpMethod": "PATCH", + "id": "sql.instances.patch", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}", + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "promoteReplica": { + "description": "Promotes the read replica instance to be a stand-alone Cloud SQL instance. Using this operation might cause your instance to restart.", + "flatPath": "v1/projects/{project}/instances/{instance}/promoteReplica", + "httpMethod": "POST", + "id": "sql.instances.promoteReplica", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the read replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/promoteReplica", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "resetSslConfig": { + "description": "Deletes all client certificates and generates a new server SSL certificate for the instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/resetSslConfig", + "httpMethod": "POST", + "id": "sql.instances.resetSslConfig", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/resetSslConfig", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restart": { + "description": "Restarts a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/restart", + "httpMethod": "POST", + "id": "sql.instances.restart", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance to be restarted.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/restart", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restoreBackup": { + "description": "Restores a backup of a Cloud SQL instance. Using this operation might cause your instance to restart.", + "flatPath": "v1/projects/{project}/instances/{instance}/restoreBackup", + "httpMethod": "POST", + "id": "sql.instances.restoreBackup", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/restoreBackup", + "request": { + "$ref": "InstancesRestoreBackupRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "rotateServerCa": { + "description": "Rotates the server certificate to one signed by the Certificate Authority (CA) version previously added with the addServerCA method.", + "flatPath": "v1/projects/{project}/instances/{instance}/rotateServerCa", + "httpMethod": "POST", + "id": "sql.instances.rotateServerCa", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/rotateServerCa", + "request": { + "$ref": "InstancesRotateServerCaRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "startReplica": { + "description": "Starts the replication in the read replica instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/startReplica", + "httpMethod": "POST", + "id": "sql.instances.startReplica", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the read replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/startReplica", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "stopReplica": { + "description": "Stops the replication in the read replica instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/stopReplica", + "httpMethod": "POST", + "id": "sql.instances.stopReplica", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL read replica instance name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the read replica.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/stopReplica", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "truncateLog": { + "description": "Truncate MySQL general and slow query log tables MySQL only.", + "flatPath": "v1/projects/{project}/instances/{instance}/truncateLog", + "httpMethod": "POST", + "id": "sql.instances.truncateLog", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the Cloud SQL project.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/truncateLog", + "request": { + "$ref": "InstancesTruncateLogRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "description": "Updates settings of a Cloud SQL instance. Using this operation might cause your instance to restart.", + "flatPath": "v1/projects/{project}/instances/{instance}", + "httpMethod": "PUT", + "id": "sql.instances.update", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}", + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "operations": { + "methods": { + "get": { + "description": "Retrieves an instance operation that has been performed on an instance.", + "flatPath": "v1/projects/{project}/operations/{operation}", + "httpMethod": "GET", + "id": "sql.operations.get", + "parameterOrder": [ + "project", + "operation" + ], + "parameters": { + "operation": { + "description": "Instance operation ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/operations/{operation}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "description": "Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.", + "flatPath": "v1/projects/{project}/operations", + "httpMethod": "GET", + "id": "sql.operations.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Maximum number of operations per response.", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/operations", + "response": { + "$ref": "OperationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "projects": { + "resources": { + "instances": { + "methods": { + "rescheduleMaintenance": { + "description": "Reschedules the maintenance on the given instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/rescheduleMaintenance", + "httpMethod": "POST", + "id": "sql.projects.instances.rescheduleMaintenance", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/rescheduleMaintenance", + "request": { + "$ref": "SqlInstancesRescheduleMaintenanceRequestBody" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "startExternalSync": { + "description": "Start External primary instance migration.", + "flatPath": "v1/projects/{project}/instances/{instance}/startExternalSync", + "httpMethod": "POST", + "id": "sql.projects.instances.startExternalSync", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "skipVerification": { + "description": "Whether to skip the verification step (VESS).", + "location": "query", + "type": "boolean" + }, + "syncMode": { + "description": "External sync mode.", + "enum": [ + "EXTERNAL_SYNC_MODE_UNSPECIFIED", + "ONLINE", + "OFFLINE" + ], + "enumDescriptions": [ + "Unknown external sync mode, will be defaulted to ONLINE mode", + "Online external sync will set up replication after initial data external sync", + "Offline external sync only dumps and loads a one-time snapshot of the primary instance's data" + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/startExternalSync", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "verifyExternalSyncSettings": { + "description": "Verify External primary instance external sync settings.", + "flatPath": "v1/projects/{project}/instances/{instance}/verifyExternalSyncSettings", + "httpMethod": "POST", + "id": "sql.projects.instances.verifyExternalSyncSettings", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "syncMode": { + "description": "External sync mode", + "enum": [ + "EXTERNAL_SYNC_MODE_UNSPECIFIED", + "ONLINE", + "OFFLINE" + ], + "enumDescriptions": [ + "Unknown external sync mode, will be defaulted to ONLINE mode", + "Online external sync will set up replication after initial data external sync", + "Offline external sync only dumps and loads a one-time snapshot of the primary instance's data" + ], + "location": "query", + "type": "string" + }, + "verifyConnectionOnly": { + "description": "Flag to enable verifying connection only", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/projects/{project}/instances/{instance}/verifyExternalSyncSettings", + "response": { + "$ref": "SqlInstancesVerifyExternalSyncSettingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + } + } + }, + "sslCerts": { + "methods": { + "createEphemeral": { + "description": "Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.", + "flatPath": "v1/projects/{project}/instances/{instance}/createEphemeral", + "httpMethod": "POST", + "id": "sql.sslCerts.createEphemeral", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the Cloud SQL project.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/createEphemeral", + "request": { + "$ref": "SslCertsCreateEphemeralRequest" + }, + "response": { + "$ref": "SslCert" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "delete": { + "description": "Deletes the SSL certificate. For First Generation instances, the certificate remains valid until the instance is restarted.", + "flatPath": "v1/projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "httpMethod": "DELETE", + "id": "sql.sslCerts.delete", + "parameterOrder": [ + "project", + "instance", + "sha1Fingerprint" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "sha1Fingerprint": { + "description": "Sha1 FingerPrint.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "description": "Retrieves a particular SSL certificate. Does not include the private key (required for usage). The private key must be saved from the response to initial creation.", + "flatPath": "v1/projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "httpMethod": "GET", + "id": "sql.sslCerts.get", + "parameterOrder": [ + "project", + "instance", + "sha1Fingerprint" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + }, + "sha1Fingerprint": { + "description": "Sha1 FingerPrint.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "response": { + "$ref": "SslCert" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "description": "Creates an SSL certificate and returns it along with the private key and server certificate authority. The new certificate will not be usable until the instance is restarted.", + "flatPath": "v1/projects/{project}/instances/{instance}/sslCerts", + "httpMethod": "POST", + "id": "sql.sslCerts.insert", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/sslCerts", + "request": { + "$ref": "SslCertsInsertRequest" + }, + "response": { + "$ref": "SslCertsInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "description": "Lists all of the current SSL certificates for the instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/sslCerts", + "httpMethod": "GET", + "id": "sql.sslCerts.list", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Cloud SQL instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/sslCerts", + "response": { + "$ref": "SslCertsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "tiers": { "methods": { "list": { - "description": "Lists instances under a given project.", - "flatPath": "v1/projects/{project}/instances", + "description": "Lists all available machine types (tiers) for Cloud SQL, for example, db-custom-1-3840. For more information, see https://cloud.google.com/sql/pricing.", + "flatPath": "v1/projects/{project}/tiers", "httpMethod": "GET", - "id": "sqladmin.instances.list", + "id": "sql.tiers.list", "parameterOrder": [ "project" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression is in the form of field:value. For example, 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per their JSON representation, such as 'settings.userLabels.auto_start:true'. Multiple filter queries are space-separated. For example. 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly.", + "project": { + "description": "Project ID of the project for which to list tiers.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/tiers", + "response": { + "$ref": "TiersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "users": { + "methods": { + "delete": { + "description": "Deletes a user from a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/users", + "httpMethod": "DELETE", + "id": "sql.users.delete", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "host": { + "description": "Host of the user in the instance.", + "location": "query", + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Name of the user in the instance.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/users", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "description": "Creates a new user in a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/users", + "httpMethod": "POST", + "id": "sql.users.insert", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/users", + "request": { + "$ref": "User" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "description": "Lists users in the specified Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/users", + "httpMethod": "GET", + "id": "sql.users.list", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "body.etag": { + "description": "This field is deprecated and will be removed from a future version of the API.", + "location": "query", + "type": "string" + }, + "body.host": { + "description": "The host name from which the user can connect. For *insert* operations, host defaults to an empty string. For *update* operations, host is specified as part of the request URL. The host name cannot be updated after insertion.", + "location": "query", + "type": "string" + }, + "body.instance": { + "description": "The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for *update* since it is already specified on the URL.", "location": "query", "type": "string" }, - "maxResults": { - "description": "The maximum number of results to return per response.", - "format": "uint32", + "body.kind": { + "description": "This is always *sql#user*.", "location": "query", - "type": "integer" + "type": "string" }, - "pageToken": { - "description": "A previously-returned page token representing part of the larger set of results to view.", + "body.name": { + "description": "The name of the user in the Cloud SQL instance. Can be omitted for *update* since it is already specified in the URL.", + "location": "query", + "type": "string" + }, + "body.password": { + "description": "The password for the user.", + "location": "query", + "type": "string" + }, + "body.project": { + "description": "The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for *update* since it is already specified on the URL.", + "location": "query", + "type": "string" + }, + "body.sqlserverUserDetails.disabled": { + "description": "If the user has been disabled", + "location": "query", + "type": "boolean" + }, + "body.sqlserverUserDetails.serverRoles": { + "description": "The server roles for this user", + "location": "query", + "repeated": true, + "type": "string" + }, + "body.type": { + "description": "The user type. It determines the method to authenticate the user during login. The default is the database's built-in user type.", + "enum": [ + "BUILT_IN", + "CLOUD_IAM_USER", + "CLOUD_IAM_SERVICE_ACCOUNT" + ], + "enumDescriptions": [ + "The database's built-in user type.", + "Cloud IAM user.", + "Cloud IAM service account." + ], "location": "query", "type": "string" }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, "project": { - "description": "Project ID of the project for which to list Cloud SQL instances.", + "description": "Project ID of the project that contains the instance.", "location": "path", "required": true, "type": "string" } }, - "path": "v1/projects/{project}/instances", + "path": "v1/projects/{project}/instances/{instance}/users", "response": { - "$ref": "InstancesListResponse" + "$ref": "UsersListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/sqlservice.admin" ] - } - } - }, - "projects": { - "resources": { - "instances": { - "methods": { - "generateEphemeralCert": { - "description": "Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.", - "flatPath": "v1/projects/{project}/instances/{instance}:generateEphemeralCert", - "httpMethod": "POST", - "id": "sqladmin.projects.instances.generateEphemeralCert", - "parameterOrder": [ - "project", - "instance" - ], - "parameters": { - "instance": { - "description": "Cloud SQL instance ID. This does not include the project ID.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID of the project that contains the instance.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/projects/{project}/instances/{instance}:generateEphemeralCert", - "request": { - "$ref": "GenerateEphemeralCertRequest" - }, - "response": { - "$ref": "GenerateEphemeralCertResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/sqlservice.admin" - ] + }, + "update": { + "description": "Updates an existing user in a Cloud SQL instance.", + "flatPath": "v1/projects/{project}/instances/{instance}/users", + "httpMethod": "PUT", + "id": "sql.users.update", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "host": { + "description": "Optional. Host of the user in the instance.", + "location": "query", + "type": "string" }, - "get": { - "description": "Retrieves a resource containing information about a Cloud SQL instance.", - "flatPath": "v1/projects/{project}/instances/{instance}", - "httpMethod": "GET", - "id": "sqladmin.projects.instances.get", - "parameterOrder": [ - "project", - "instance" - ], - "parameters": { - "instance": { - "description": "Database instance ID. This does not include the project ID.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID of the project that contains the instance.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/projects/{project}/instances/{instance}", - "response": { - "$ref": "DatabaseInstance" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/sqlservice.admin" - ] + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" }, - "getConnectSettings": { - "description": "Retrieves connect settings about a Cloud SQL instance.", - "flatPath": "v1/projects/{project}/instances/{instance}/connectSettings", - "httpMethod": "GET", - "id": "sqladmin.projects.instances.getConnectSettings", - "parameterOrder": [ - "project", - "instance" - ], - "parameters": { - "instance": { - "description": "Cloud SQL instance ID. This does not include the project ID.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID of the project that contains the instance.", - "location": "path", - "required": true, - "type": "string" - }, - "readTime": { - "description": "Optional. Optional snapshot read timestamp to trade freshness for performance.", - "format": "google-datetime", - "location": "query", - "type": "string" - } - }, - "path": "v1/projects/{project}/instances/{instance}/connectSettings", - "response": { - "$ref": "ConnectSettings" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/sqlservice.admin" - ] + "name": { + "description": "Name of the user in the instance.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID of the project that contains the instance.", + "location": "path", + "required": true, + "type": "string" } }, - "resources": { - "createEphemeral": { - "methods": { - "create": { - "description": "Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.", - "flatPath": "v1/projects/{project}/instances/{instance}/createEphemeral", - "httpMethod": "POST", - "id": "sqladmin.projects.instances.createEphemeral.create", - "parameterOrder": [ - "project", - "instance" - ], - "parameters": { - "instance": { - "description": "Cloud SQL instance ID. This does not include the project ID.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID of the Cloud SQL project.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/projects/{project}/instances/{instance}/createEphemeral", - "request": { - "$ref": "SslCertsCreateEphemeralRequest" - }, - "response": { - "$ref": "SslCert" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/sqlservice.admin" - ] - } - } - } - } + "path": "v1/projects/{project}/instances/{instance}/users", + "request": { + "$ref": "User" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] } } } }, - "revision": "20210627", + "revision": "20210715", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -406,6 +2070,22 @@ }, "type": "object" }, + "BackupContext": { + "description": "Backup context.", + "id": "BackupContext", + "properties": { + "backupId": { + "description": "The identifier of the backup.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "This is always **sql#backupContext**.", + "type": "string" + } + }, + "type": "object" + }, "BackupRetentionSettings": { "description": "We currently only support backup retention by specifying the number of backups we will retain.", "id": "BackupRetentionSettings", @@ -430,6 +2110,197 @@ }, "type": "object" }, + "BackupRun": { + "description": "A BackupRun resource.", + "id": "BackupRun", + "properties": { + "backupKind": { + "description": "Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.", + "enum": [ + "SQL_BACKUP_KIND_UNSPECIFIED", + "SNAPSHOT", + "PHYSICAL" + ], + "enumDescriptions": [ + "This is an unknown BackupKind.", + "The snapshot based backups", + "Physical backups" + ], + "type": "string" + }, + "description": { + "description": "The description of this run, only applicable to on-demand backups.", + "type": "string" + }, + "diskEncryptionConfiguration": { + "$ref": "DiskEncryptionConfiguration", + "description": "Encryption configuration specific to a backup." + }, + "diskEncryptionStatus": { + "$ref": "DiskEncryptionStatus", + "description": "Encryption status specific to a backup." + }, + "endTime": { + "description": "The time the backup operation completed in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.", + "format": "google-datetime", + "type": "string" + }, + "enqueuedTime": { + "description": "The time the run was enqueued in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "OperationError", + "description": "Information about why the backup operation failed. This is only present if the run has the FAILED status." + }, + "id": { + "description": "The identifier for this backup run. Unique only for a specific Cloud SQL instance.", + "format": "int64", + "type": "string" + }, + "instance": { + "description": "Name of the database instance.", + "type": "string" + }, + "kind": { + "description": "This is always *sql#backupRun*.", + "type": "string" + }, + "location": { + "description": "Location of the backups.", + "type": "string" + }, + "selfLink": { + "description": "The URI of this resource.", + "type": "string" + }, + "startTime": { + "description": "The time the backup operation actually started in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.", + "format": "google-datetime", + "type": "string" + }, + "status": { + "description": "The status of this run.", + "enum": [ + "SQL_BACKUP_RUN_STATUS_UNSPECIFIED", + "ENQUEUED", + "OVERDUE", + "RUNNING", + "FAILED", + "SUCCESSFUL", + "SKIPPED", + "DELETION_PENDING", + "DELETION_FAILED", + "DELETED" + ], + "enumDescriptions": [ + "The status of the run is unknown.", + "The backup operation was enqueued.", + "The backup is overdue across a given backup window. Indicates a problem. Example: Long-running operation in progress during the whole window.", + "The backup is in progress.", + "The backup failed.", + "The backup was successful.", + "The backup was skipped (without problems) for a given backup window. Example: Instance was idle.", + "The backup is about to be deleted.", + "The backup deletion failed.", + "The backup has been deleted." + ], + "type": "string" + }, + "type": { + "description": "The type of this run; can be either \"AUTOMATED\" or \"ON_DEMAND\". This field defaults to \"ON_DEMAND\" and is ignored, when specified for insert requests.", + "enum": [ + "SQL_BACKUP_RUN_TYPE_UNSPECIFIED", + "AUTOMATED", + "ON_DEMAND" + ], + "enumDescriptions": [ + "This is an unknown BackupRun type.", + "The backup schedule automatically triggers a backup.", + "The user manually triggers a backup." + ], + "type": "string" + }, + "windowStartTime": { + "description": "The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "BackupRunsListResponse": { + "description": "Backup run list results.", + "id": "BackupRunsListResponse", + "properties": { + "items": { + "description": "A list of backup runs in reverse chronological order of the enqueued time.", + "items": { + "$ref": "BackupRun" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#backupRunsList*.", + "type": "string" + }, + "nextPageToken": { + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", + "type": "string" + } + }, + "type": "object" + }, + "BinLogCoordinates": { + "description": "Binary log coordinates.", + "id": "BinLogCoordinates", + "properties": { + "binLogFileName": { + "description": "Name of the binary log file for a Cloud SQL instance.", + "type": "string" + }, + "binLogPosition": { + "description": "Position (offset) within the binary log file.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "This is always *sql#binLogCoordinates*.", + "type": "string" + } + }, + "type": "object" + }, + "CloneContext": { + "description": "Database instance clone context.", + "id": "CloneContext", + "properties": { + "binLogCoordinates": { + "$ref": "BinLogCoordinates", + "description": "Binary log coordinates, if specified, identify the position up to which the source instance is cloned. If not specified, the source instance is cloned up to the most recent binary log coordinates." + }, + "destinationInstanceName": { + "description": "Name of the Cloud SQL instance to be created as a clone.", + "type": "string" + }, + "kind": { + "description": "This is always *sql#cloneContext*.", + "type": "string" + }, + "pitrTimestampMs": { + "description": "Reserved for future use.", + "format": "int64", + "type": "string" + }, + "pointInTime": { + "description": "Timestamp, if specified, identifies the time to which the source instance is cloned.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "ConnectSettings": { "description": "Connect settings retrieval response.", "id": "ConnectSettings", @@ -512,12 +2383,54 @@ }, "type": "object" }, + "Database": { + "description": "Represents a SQL database on the Cloud SQL instance.", + "id": "Database", + "properties": { + "charset": { + "description": "The Cloud SQL charset value.", + "type": "string" + }, + "collation": { + "description": "The Cloud SQL collation value.", + "type": "string" + }, + "etag": { + "description": "This field is deprecated and will be removed from a future version of the API.", + "type": "string" + }, + "instance": { + "description": "The name of the Cloud SQL instance. This does not include the project ID.", + "type": "string" + }, + "kind": { + "description": "This is always **sql#database**.", + "type": "string" + }, + "name": { + "description": "The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.", + "type": "string" + }, + "project": { + "description": "The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.", + "type": "string" + }, + "selfLink": { + "description": "The URI of this resource.", + "type": "string" + }, + "sqlserverDatabaseDetails": { + "$ref": "SqlServerDatabaseDetails" + } + }, + "type": "object" + }, "DatabaseFlags": { "description": "Database flags for Cloud SQL instances.", "id": "DatabaseFlags", "properties": { "name": { - "description": "The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](/sql/docs/mysql/flags) in the Cloud SQL documentation.", + "description": "The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](https://cloud.google.com/sql/docs/mysql/flags) in the Cloud SQL documentation.", "type": "string" }, "value": { @@ -557,7 +2470,7 @@ "type": "string" }, "databaseVersion": { - "description": "The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.", + "description": "The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.", "enum": [ "SQL_DATABASE_VERSION_UNSPECIFIED", "MYSQL_5_1", @@ -602,34 +2515,25 @@ }, "diskEncryptionConfiguration": { "$ref": "DiskEncryptionConfiguration", - "description": "Disk encryption configuration specific to an instance. Applies only to Second Generation instances." + "description": "Disk encryption configuration specific to an instance." }, "diskEncryptionStatus": { "$ref": "DiskEncryptionStatus", - "description": "Disk encryption status specific to an instance. Applies only to Second Generation instances." - }, - "encryptedRootPassword": { - "description": "For internal usage only. The encrypted password.", - "format": "byte", - "type": "string" + "description": "Disk encryption status specific to an instance." }, "etag": { "description": "This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.", "type": "string" }, "failoverReplica": { - "description": "The name and status of the failover replica. This property is applicable only to Second Generation instances.", + "description": "The name and status of the failover replica.", "properties": { "available": { "description": "The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.", "type": "boolean" }, - "failoverInstance": { - "$ref": "InstanceReference", - "description": "A reference to the failover replica. If specified at instance creation, a failover replica is created for the instance. Currently, the failover replica can only be created in the same region as the primary instance." - }, "name": { - "description": "The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances.", + "description": "The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.", "type": "string" } }, @@ -639,50 +2543,6 @@ "description": "The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.", "type": "string" }, - "installedVersion": { - "description": "installed_version stores the current fully resolved database version including minor version such as MySQL_5.6.50", - "enum": [ - "SQL_DATABASE_VERSION_UNSPECIFIED", - "MYSQL_5_1", - "MYSQL_5_5", - "MYSQL_5_6", - "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", - "SQLSERVER_2017_STANDARD", - "SQLSERVER_2017_ENTERPRISE", - "SQLSERVER_2017_EXPRESS", - "SQLSERVER_2017_WEB", - "POSTGRES_10", - "POSTGRES_12", - "POSTGRES_13", - "SQLSERVER_2019_STANDARD", - "SQLSERVER_2019_ENTERPRISE", - "SQLSERVER_2019_EXPRESS", - "SQLSERVER_2019_WEB" - ], - "enumDescriptions": [ - "This is an unknown database version.", - "The database version is MySQL 5.1.", - "The database version is MySQL 5.5.", - "The database version is MySQL 5.6.", - "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", - "The database version is SQL Server 2017 Standard.", - "The database version is SQL Server 2017 Enterprise.", - "The database version is SQL Server 2017 Express.", - "The database version is SQL Server 2017 Web.", - "The database version is PostgreSQL 10.", - "The database version is PostgreSQL 12.", - "The database version is PostgreSQL 13.", - "The database version is SQL Server 2019 Standard.", - "The database version is SQL Server 2019 Enterprise.", - "The database version is SQL Server 2019 Express.", - "The database version is SQL Server 2019 Web." - ], - "type": "string" - }, "instanceType": { "description": "The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.", "enum": [ @@ -699,10 +2559,6 @@ ], "type": "string" }, - "instanceUid": { - "description": "Uid of the Cloud SQL instance. Used by Pantheon to check instance is created", - "type": "string" - }, "ipAddresses": { "description": "The assigned IP addresses for the instance.", "items": { @@ -718,10 +2574,6 @@ "description": "This is always *sql#instance*.", "type": "string" }, - "masterInstance": { - "$ref": "InstanceReference", - "description": "The reference to the instance which will act as primary in the replication setup." - }, "masterInstanceName": { "description": "The name of the instance which will act as primary in the replication setup.", "type": "string" @@ -755,13 +2607,6 @@ "$ref": "ReplicaConfiguration", "description": "Configuration specific to failover replicas and read replicas." }, - "replicaInstances": { - "description": "The replicas of the instance.", - "items": { - "$ref": "InstanceReference" - }, - "type": "array" - }, "replicaNames": { "description": "The replicas of the instance.", "items": { @@ -847,6 +2692,93 @@ }, "type": "object" }, + "DatabasesListResponse": { + "description": "Database list response.", + "id": "DatabasesListResponse", + "properties": { + "items": { + "description": "List of database resources in the instance.", + "items": { + "$ref": "Database" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#databasesList*.", + "type": "string" + } + }, + "type": "object" + }, + "DemoteMasterConfiguration": { + "description": "Read-replica configuration for connecting to the on-premises primary instance.", + "id": "DemoteMasterConfiguration", + "properties": { + "kind": { + "description": "This is always **sql#demoteMasterConfiguration**.", + "type": "string" + }, + "mysqlReplicaConfiguration": { + "$ref": "DemoteMasterMySqlReplicaConfiguration", + "description": "MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named **master.info** in the data directory." + } + }, + "type": "object" + }, + "DemoteMasterContext": { + "description": "Database instance demote primary instance context.", + "id": "DemoteMasterContext", + "properties": { + "kind": { + "description": "This is always *sql#demoteMasterContext*.", + "type": "string" + }, + "masterInstanceName": { + "description": "The name of the instance which will act as on-premises primary instance in the replication setup.", + "type": "string" + }, + "replicaConfiguration": { + "$ref": "DemoteMasterConfiguration", + "description": "Configuration specific to read-replicas replicating from the on-premises primary instance." + }, + "verifyGtidConsistency": { + "description": "Verify GTID consistency for demote operation. Default value: *True*. Setting this flag to false enables you to bypass GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues.", + "type": "boolean" + } + }, + "type": "object" + }, + "DemoteMasterMySqlReplicaConfiguration": { + "description": "Read-replica configuration specific to MySQL databases.", + "id": "DemoteMasterMySqlReplicaConfiguration", + "properties": { + "caCertificate": { + "description": "PEM representation of the trusted CA's x509 certificate.", + "type": "string" + }, + "clientCertificate": { + "description": "PEM representation of the replica's x509 certificate.", + "type": "string" + }, + "clientKey": { + "description": "PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate. The format of the replica's private key can be either PKCS #1 or PKCS #8.", + "type": "string" + }, + "kind": { + "description": "This is always **sql#demoteMasterMysqlReplicaConfiguration**.", + "type": "string" + }, + "password": { + "description": "The password for the replication connection.", + "type": "string" + }, + "username": { + "description": "The username for the replication connection.", + "type": "string" + } + }, + "type": "object" + }, "DenyMaintenancePeriod": { "description": "Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.", "id": "DenyMaintenancePeriod", @@ -881,16 +2813,249 @@ }, "type": "object" }, - "DiskEncryptionStatus": { - "description": "Disk encryption status for an instance.", - "id": "DiskEncryptionStatus", + "DiskEncryptionStatus": { + "description": "Disk encryption status for an instance.", + "id": "DiskEncryptionStatus", + "properties": { + "kind": { + "description": "This is always **sql#diskEncryptionStatus**.", + "type": "string" + }, + "kmsKeyVersionName": { + "description": "KMS key version used to encrypt the Cloud SQL instance resource", + "type": "string" + } + }, + "type": "object" + }, + "ExportContext": { + "description": "Database instance export context.", + "id": "ExportContext", + "properties": { + "csvExportOptions": { + "description": "Options for exporting data as CSV. **MySQL** and **PostgreSQL** instances only.", + "properties": { + "selectQuery": { + "description": "The select query used to extract the data.", + "type": "string" + } + }, + "type": "object" + }, + "databases": { + "description": "Databases to be exported. **MySQL instances:** If **fileType** is **SQL** and no database is specified, all databases are exported, except for the **mysql** system database. If **fileType** is **CSV**, you can specify one database, either by using this property or by using the **csvExportOptions.selectQuery** property, which takes precedence over this property. **PostgreSQL instances:** You must specify one database to be exported. If **fileType** is **CSV**, this database must match the one specified in the **csvExportOptions.selectQuery** property. **SQL Server instances:** You must specify one database to be exported, and the **fileType** must be **BAK**.", + "items": { + "type": "string" + }, + "type": "array" + }, + "fileType": { + "description": "The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data. **BAK**: The file contains backup data for a SQL Server instance.", + "enum": [ + "SQL_FILE_TYPE_UNSPECIFIED", + "SQL", + "CSV", + "BAK" + ], + "enumDescriptions": [ + "Unknown file type.", + "File containing SQL statements.", + "File in CSV format.", + "" + ], + "type": "string" + }, + "kind": { + "description": "This is always **sql#exportContext**.", + "type": "string" + }, + "offload": { + "description": "Option for export offload.", + "type": "boolean" + }, + "sqlExportOptions": { + "description": "Options for exporting data as SQL statements.", + "properties": { + "mysqlExportOptions": { + "description": "Options for exporting from MySQL.", + "properties": { + "masterData": { + "description": "Option to include SQL statement required to set up replication. If set to **1**, the dump file includes a CHANGE MASTER TO statement with the binary log coordinates, and --set-gtid-purged is set to ON. If set to **2**, the CHANGE MASTER TO statement is written as a SQL comment and has no effect. If set to any value other than **1**, --set-gtid-purged is set to OFF.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "schemaOnly": { + "description": "Export only schemas.", + "type": "boolean" + }, + "tables": { + "description": "Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database. For PostgreSQL instances, you can specify only one table.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "uri": { + "description": "The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form **gs://bucketName/fileName**. If the file already exists, the request succeeds, but the operation fails. If **fileType** is **SQL** and the filename ends with .gz, the contents are compressed.", + "type": "string" + } + }, + "type": "object" + }, + "FailoverContext": { + "description": "Database instance failover context.", + "id": "FailoverContext", + "properties": { + "kind": { + "description": "This is always *sql#failoverContext*.", + "type": "string" + }, + "settingsVersion": { + "description": "The current settings version of this instance. Request will be rejected if this version doesn't match the current settings version.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Flag": { + "description": "A flag resource.", + "id": "Flag", + "properties": { + "allowedIntValues": { + "description": "Use this field if only certain integers are accepted. Can be combined with min_value and max_value to add additional values.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "allowedStringValues": { + "description": "For **STRING** flags, a list of strings that the value can be set to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "appliesTo": { + "description": "The database version this flag applies to. Can be **MYSQL_8_0**, **MYSQL_5_6**, or **MYSQL_5_7**.", + "items": { + "enum": [ + "SQL_DATABASE_VERSION_UNSPECIFIED", + "MYSQL_5_1", + "MYSQL_5_5", + "MYSQL_5_6", + "MYSQL_5_7", + "POSTGRES_9_6", + "POSTGRES_11", + "SQLSERVER_2017_STANDARD", + "SQLSERVER_2017_ENTERPRISE", + "SQLSERVER_2017_EXPRESS", + "SQLSERVER_2017_WEB", + "POSTGRES_10", + "POSTGRES_12", + "POSTGRES_13", + "SQLSERVER_2019_STANDARD", + "SQLSERVER_2019_ENTERPRISE", + "SQLSERVER_2019_EXPRESS", + "SQLSERVER_2019_WEB" + ], + "enumDescriptions": [ + "This is an unknown database version.", + "The database version is MySQL 5.1.", + "The database version is MySQL 5.5.", + "The database version is MySQL 5.6.", + "The database version is MySQL 5.7.", + "The database version is PostgreSQL 9.6.", + "The database version is PostgreSQL 11.", + "The database version is SQL Server 2017 Standard.", + "The database version is SQL Server 2017 Enterprise.", + "The database version is SQL Server 2017 Express.", + "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is SQL Server 2019 Standard.", + "The database version is SQL Server 2019 Enterprise.", + "The database version is SQL Server 2019 Express.", + "The database version is SQL Server 2019 Web." + ], + "type": "string" + }, + "type": "array" + }, + "inBeta": { + "description": "Whether or not the flag is considered in beta.", + "type": "boolean" + }, + "kind": { + "description": "This is always **sql#flag**.", + "type": "string" + }, + "maxValue": { + "description": "For **INTEGER** flags, the maximum allowed value.", + "format": "int64", + "type": "string" + }, + "minValue": { + "description": "For **INTEGER** flags, the minimum allowed value.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "This is the name of the flag. Flag names always use underscores, not hyphens, for example: **max_allowed_packet**", + "type": "string" + }, + "requiresRestart": { + "description": "Indicates whether changing this flag will trigger a database restart. Only applicable to Second Generation instances.", + "type": "boolean" + }, + "type": { + "description": "The type of the flag. Flags are typed to being **BOOLEAN**, **STRING**, **INTEGER** or **NONE**. **NONE** is used for flags which do not take a value, such as **skip_grant_tables**.", + "enum": [ + "SQL_FLAG_TYPE_UNSPECIFIED", + "BOOLEAN", + "STRING", + "INTEGER", + "NONE", + "MYSQL_TIMEZONE_OFFSET", + "FLOAT", + "REPEATED_STRING" + ], + "enumDescriptions": [ + "This is an unknown flag type.", + "Boolean type flag.", + "String type flag.", + "Integer type flag.", + "Flag type used for a server startup option.", + "Type introduced specially for MySQL TimeZone offset. Accept a string value with the format [-12:59, 13:00].", + "Float type flag.", + "Comma-separated list of the strings in a SqlFlagType enum." + ], + "type": "string" + } + }, + "type": "object" + }, + "FlagsListResponse": { + "description": "Flags list response.", + "id": "FlagsListResponse", "properties": { - "kind": { - "description": "This is always **sql#diskEncryptionStatus**.", - "type": "string" + "items": { + "description": "List of flags.", + "items": { + "$ref": "Flag" + }, + "type": "array" }, - "kmsKeyVersionName": { - "description": "KMS key version used to encrypt the Cloud SQL instance resource", + "kind": { + "description": "This is always **sql#flagsList**.", "type": "string" } }, @@ -927,6 +3092,85 @@ }, "type": "object" }, + "ImportContext": { + "description": "Database instance import context.", + "id": "ImportContext", + "properties": { + "bakImportOptions": { + "description": "Import parameters specific to SQL Server .BAK files", + "properties": { + "encryptionOptions": { + "properties": { + "certPath": { + "description": "Path to the Certificate (.cer) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.", + "type": "string" + }, + "pvkPassword": { + "description": "Password that encrypts the private key", + "type": "string" + }, + "pvkPath": { + "description": "Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form **gs://bucketName/fileName**. The instance must have write permissions to the bucket and read access to the file.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "csvImportOptions": { + "description": "Options for importing data as CSV.", + "properties": { + "columns": { + "description": "The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.", + "items": { + "type": "string" + }, + "type": "array" + }, + "table": { + "description": "The table to which CSV data is imported.", + "type": "string" + } + }, + "type": "object" + }, + "database": { + "description": "The target database for the import. If **fileType** is **SQL**, this field is required only if the import file does not specify a database, and is overridden by any database specification in the import file. If **fileType** is **CSV**, one database must be specified.", + "type": "string" + }, + "fileType": { + "description": "The file type for the specified uri. **SQL**: The file contains SQL statements. **CSV**: The file contains CSV data.", + "enum": [ + "SQL_FILE_TYPE_UNSPECIFIED", + "SQL", + "CSV", + "BAK" + ], + "enumDescriptions": [ + "Unknown file type.", + "File containing SQL statements.", + "File in CSV format.", + "" + ], + "type": "string" + }, + "importUser": { + "description": "The PostgreSQL user for this import operation. PostgreSQL instances only.", + "type": "string" + }, + "kind": { + "description": "This is always **sql#importContext**.", + "type": "string" + }, + "uri": { + "description": "Path to the import file in Cloud Storage, in the form **gs://bucketName/fileName**. Compressed gzip files (.gz) are supported when **fileType** is **SQL**. The instance must have write permissions to the bucket and read access to the file.", + "type": "string" + } + }, + "type": "object" + }, "InsightsConfig": { "description": "Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration.", "id": "InsightsConfig", @@ -936,7 +3180,7 @@ "type": "boolean" }, "queryPlansPerMinute": { - "description": "Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database.", + "description": "Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.", "format": "int32", "type": "integer" }, @@ -956,17 +3200,57 @@ }, "type": "object" }, - "InstanceReference": { - "description": "Reference to another Cloud SQL instance.", - "id": "InstanceReference", + "InstancesCloneRequest": { + "description": "Database instance clone request.", + "id": "InstancesCloneRequest", "properties": { - "name": { - "description": "The name of the Cloud SQL instance being referenced.", - "type": "string" - }, - "region": { - "description": "The region of the Cloud SQL instance being referenced.", - "type": "string" + "cloneContext": { + "$ref": "CloneContext", + "description": "Contains details about the clone operation." + } + }, + "type": "object" + }, + "InstancesDemoteMasterRequest": { + "description": "Database demote primary instance request.", + "id": "InstancesDemoteMasterRequest", + "properties": { + "demoteMasterContext": { + "$ref": "DemoteMasterContext", + "description": "Contains details about the demoteMaster operation." + } + }, + "type": "object" + }, + "InstancesExportRequest": { + "description": "Database instance export request.", + "id": "InstancesExportRequest", + "properties": { + "exportContext": { + "$ref": "ExportContext", + "description": "Contains details about the export operation." + } + }, + "type": "object" + }, + "InstancesFailoverRequest": { + "description": "Instance failover request.", + "id": "InstancesFailoverRequest", + "properties": { + "failoverContext": { + "$ref": "FailoverContext", + "description": "Failover Context." + } + }, + "type": "object" + }, + "InstancesImportRequest": { + "description": "Database instance import request.", + "id": "InstancesImportRequest", + "properties": { + "importContext": { + "$ref": "ImportContext", + "description": "Contains details about the import operation." } }, "type": "object" @@ -1000,6 +3284,60 @@ }, "type": "object" }, + "InstancesListServerCasResponse": { + "description": "Instances ListServerCas response.", + "id": "InstancesListServerCasResponse", + "properties": { + "activeVersion": { + "type": "string" + }, + "certs": { + "description": "List of server CA certificates for the instance.", + "items": { + "$ref": "SslCert" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#instancesListServerCas*.", + "type": "string" + } + }, + "type": "object" + }, + "InstancesRestoreBackupRequest": { + "description": "Database instance restore backup request.", + "id": "InstancesRestoreBackupRequest", + "properties": { + "restoreBackupContext": { + "$ref": "RestoreBackupContext", + "description": "Parameters required to perform the restore backup operation." + } + }, + "type": "object" + }, + "InstancesRotateServerCaRequest": { + "description": "Rotate server CA request.", + "id": "InstancesRotateServerCaRequest", + "properties": { + "rotateServerCaContext": { + "$ref": "RotateServerCaContext", + "description": "Contains details about the rotate server CA operation." + } + }, + "type": "object" + }, + "InstancesTruncateLogRequest": { + "description": "Instance truncate log request.", + "id": "InstancesTruncateLogRequest", + "properties": { + "truncateLogContext": { + "$ref": "TruncateLogContext", + "description": "Contains details about the truncate log operation." + } + }, + "type": "object" + }, "IpConfiguration": { "description": "IP Management configuration.", "id": "IpConfiguration", @@ -1064,6 +3402,10 @@ "description": "Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified.", "id": "LocationPreference", "properties": { + "followGaeApplication": { + "description": "The App Engine application to follow, it must be in the same region as the Cloud SQL instance.", + "type": "string" + }, "kind": { "description": "This is always **sql#locationPreference**.", "type": "string" @@ -1098,7 +3440,7 @@ "type": "string" }, "updateTrack": { - "description": "Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instance-settings#maintenance-timing-2ndgen).", + "description": "Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen).", "enum": [ "SQL_UPDATE_TRACK_UNSPECIFIED", "canary", @@ -1156,71 +3498,355 @@ "description": "A list of permissible ciphers to use for SSL encryption.", "type": "string" }, - "username": { - "description": "The username for the replication connection.", + "username": { + "description": "The username for the replication connection.", + "type": "string" + }, + "verifyServerCertificate": { + "description": "Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.", + "type": "boolean" + } + }, + "type": "object" + }, + "OnPremisesConfiguration": { + "description": "On-premises instance configuration.", + "id": "OnPremisesConfiguration", + "properties": { + "caCertificate": { + "description": "PEM representation of the trusted CA's x509 certificate.", + "type": "string" + }, + "clientCertificate": { + "description": "PEM representation of the replica's x509 certificate.", + "type": "string" + }, + "clientKey": { + "description": "PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.", + "type": "string" + }, + "dumpFilePath": { + "description": "The dump file to create the Cloud SQL replica.", + "type": "string" + }, + "hostPort": { + "description": "The host and port of the on-premises instance in host:port format", + "type": "string" + }, + "kind": { + "description": "This is always *sql#onPremisesConfiguration*.", + "type": "string" + }, + "password": { + "description": "The password for connecting to on-premises instance.", + "type": "string" + }, + "username": { + "description": "The username for connecting to on-premises instance.", + "type": "string" + } + }, + "type": "object" + }, + "Operation": { + "description": "An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.", + "id": "Operation", + "properties": { + "backupContext": { + "$ref": "BackupContext", + "description": "The context for backup operation, if applicable." + }, + "endTime": { + "description": "The time this operation finished in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "OperationErrors", + "description": "If errors occurred during processing of this operation, this field will be populated." + }, + "exportContext": { + "$ref": "ExportContext", + "description": "The context for export operation, if applicable." + }, + "importContext": { + "$ref": "ImportContext", + "description": "The context for import operation, if applicable." + }, + "insertTime": { + "description": "The time this operation was enqueued in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.", + "format": "google-datetime", + "type": "string" + }, + "kind": { + "description": "This is always **sql#operation**.", + "type": "string" + }, + "name": { + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.", + "type": "string" + }, + "operationType": { + "description": "The type of the operation. Valid values are: **CREATE** **DELETE** **UPDATE** **RESTART** **IMPORT** **EXPORT** **BACKUP_VOLUME** **RESTORE_VOLUME** **CREATE_USER** **DELETE_USER** **CREATE_DATABASE** **DELETE_DATABASE**", + "enum": [ + "SQL_OPERATION_TYPE_UNSPECIFIED", + "IMPORT", + "EXPORT", + "CREATE", + "UPDATE", + "DELETE", + "RESTART", + "BACKUP", + "SNAPSHOT", + "BACKUP_VOLUME", + "DELETE_VOLUME", + "RESTORE_VOLUME", + "INJECT_USER", + "CLONE", + "STOP_REPLICA", + "START_REPLICA", + "PROMOTE_REPLICA", + "CREATE_REPLICA", + "CREATE_USER", + "DELETE_USER", + "UPDATE_USER", + "CREATE_DATABASE", + "DELETE_DATABASE", + "UPDATE_DATABASE", + "FAILOVER", + "DELETE_BACKUP", + "RECREATE_REPLICA", + "TRUNCATE_LOG", + "DEMOTE_MASTER", + "MAINTENANCE", + "ENABLE_PRIVATE_IP", + "DEFER_MAINTENANCE", + "CREATE_CLONE", + "RESCHEDULE_MAINTENANCE", + "START_EXTERNAL_SYNC" + ], + "enumDescriptions": [ + "Unknown operation type.", + "Imports data into a Cloud SQL instance.", + "Exports data from a Cloud SQL instance to a Cloud Storage bucket.", + "Creates a new Cloud SQL instance.", + "Updates the settings of a Cloud SQL instance.", + "Deletes a Cloud SQL instance.", + "Restarts the Cloud SQL instance.", + "", + "", + "Performs instance backup.", + "Deletes an instance backup.", + "Restores an instance backup.", + "Injects a privileged user in mysql for MOB instances.", + "Clones a Cloud SQL instance.", + "Stops replication on a Cloud SQL read replica instance.", + "Starts replication on a Cloud SQL read replica instance.", + "Promotes a Cloud SQL replica instance.", + "Creates a Cloud SQL replica instance.", + "Creates a new user in a Cloud SQL instance.", + "Deletes a user from a Cloud SQL instance.", + "Updates an existing user in a Cloud SQL instance.", + "Creates a database in the Cloud SQL instance.", + "Deletes a database in the Cloud SQL instance.", + "Updates a database in the Cloud SQL instance.", + "Performs failover of an HA-enabled Cloud SQL failover replica.", + "Deletes the backup taken by a backup run.", + "", + "Truncates a general or slow log table in MySQL.", + "Demotes the stand-alone instance to be a Cloud SQL read replica for an external database server.", + "Indicates that the instance is currently in maintenance. Maintenance typically causes the instance to be unavailable for 1-3 minutes.", + "This field is deprecated, and will be removed in future version of API.", + "", + "Creates clone instance.", + "Reschedule maintenance to another time.", + "Starts external sync of a Cloud SQL EM replica to an external primary instance." + ], + "type": "string" + }, + "selfLink": { + "description": "The URI of this resource.", + "type": "string" + }, + "startTime": { + "description": "The time this operation actually started in UTC timezone in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.", + "format": "google-datetime", + "type": "string" + }, + "status": { + "description": "The status of an operation. Valid values are: **PENDING** **RUNNING** **DONE** **SQL_OPERATION_STATUS_UNSPECIFIED**", + "enum": [ + "SQL_OPERATION_STATUS_UNSPECIFIED", + "PENDING", + "RUNNING", + "DONE" + ], + "enumDescriptions": [ + "The state of the operation is unknown.", + "The operation has been queued, but has not started yet.", + "The operation is running.", + "The operation completed." + ], + "type": "string" + }, + "targetId": { + "description": "Name of the database instance related to this operation.", + "type": "string" + }, + "targetLink": { + "type": "string" + }, + "targetProject": { + "description": "The project ID of the target instance related to this operation.", + "type": "string" + }, + "user": { + "description": "The email address of the user who initiated this operation.", + "type": "string" + } + }, + "type": "object" + }, + "OperationError": { + "description": "Database instance operation error.", + "id": "OperationError", + "properties": { + "code": { + "description": "Identifies the specific error that occurred.", + "type": "string" + }, + "kind": { + "description": "This is always **sql#operationError**.", + "type": "string" + }, + "message": { + "description": "Additional information about the error encountered.", + "type": "string" + } + }, + "type": "object" + }, + "OperationErrors": { + "description": "Database instance operation errors list wrapper.", + "id": "OperationErrors", + "properties": { + "errors": { + "description": "The list of errors encountered while processing this operation.", + "items": { + "$ref": "OperationError" + }, + "type": "array" + }, + "kind": { + "description": "This is always **sql#operationErrors**.", + "type": "string" + } + }, + "type": "object" + }, + "OperationsListResponse": { + "description": "Operations list response.", + "id": "OperationsListResponse", + "properties": { + "items": { + "description": "List of operation resources.", + "items": { + "$ref": "Operation" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#operationsList*.", + "type": "string" + }, + "nextPageToken": { + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", + "type": "string" + } + }, + "type": "object" + }, + "ReplicaConfiguration": { + "description": "Read-replica configuration for connecting to the primary instance.", + "id": "ReplicaConfiguration", + "properties": { + "failoverTarget": { + "description": "Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.", + "type": "boolean" + }, + "kind": { + "description": "This is always *sql#replicaConfiguration*.", "type": "string" }, - "verifyServerCertificate": { - "description": "Whether or not to check the primary instance's Common Name value in the certificate that it sends during the SSL handshake.", - "type": "boolean" + "mysqlReplicaConfiguration": { + "$ref": "MySqlReplicaConfiguration", + "description": "MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory." } }, "type": "object" }, - "OnPremisesConfiguration": { - "description": "On-premises instance configuration.", - "id": "OnPremisesConfiguration", + "Reschedule": { + "id": "Reschedule", "properties": { - "caCertificate": { - "description": "PEM representation of the trusted CA's x509 certificate.", - "type": "string" - }, - "clientCertificate": { - "description": "PEM representation of the replica's x509 certificate.", + "rescheduleType": { + "description": "Required. The type of the reschedule.", + "enum": [ + "RESCHEDULE_TYPE_UNSPECIFIED", + "IMMEDIATE", + "NEXT_AVAILABLE_WINDOW", + "SPECIFIC_TIME" + ], + "enumDescriptions": [ + "", + "Reschedules maintenance to happen now (within 5 minutes).", + "Reschedules maintenance to occur within one week from the originally scheduled day and time.", + "Reschedules maintenance to a specific time and day." + ], "type": "string" }, - "clientKey": { - "description": "PEM representation of the replica's private key. The corresponsing public key is encoded in the client's certificate.", + "scheduleTime": { + "description": "Optional. Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.", + "format": "google-datetime", "type": "string" - }, - "dumpFilePath": { - "description": "The dump file to create the Cloud SQL replica.", + } + }, + "type": "object" + }, + "RestoreBackupContext": { + "description": "Database instance restore from backup context. Backup context contains source instance id and project id.", + "id": "RestoreBackupContext", + "properties": { + "backupRunId": { + "description": "The ID of the backup run to restore from.", + "format": "int64", "type": "string" }, - "hostPort": { - "description": "The host and port of the on-premises instance in host:port format", + "instanceId": { + "description": "The ID of the instance that the backup was taken from.", "type": "string" }, "kind": { - "description": "This is always *sql#onPremisesConfiguration*.", - "type": "string" - }, - "password": { - "description": "The password for connecting to on-premises instance.", + "description": "This is always *sql#restoreBackupContext*.", "type": "string" }, - "username": { - "description": "The username for connecting to on-premises instance.", + "project": { + "description": "The full project ID of the source instance.", "type": "string" } }, "type": "object" }, - "ReplicaConfiguration": { - "description": "Read-replica configuration for connecting to the primary instance.", - "id": "ReplicaConfiguration", + "RotateServerCaContext": { + "description": "Instance rotate server CA context.", + "id": "RotateServerCaContext", "properties": { - "failoverTarget": { - "description": "Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.", - "type": "boolean" - }, "kind": { - "description": "This is always *sql#replicaConfiguration*.", + "description": "This is always *sql#rotateServerCaContext*.", "type": "string" }, - "mysqlReplicaConfiguration": { - "$ref": "MySqlReplicaConfiguration", - "description": "MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory." + "nextVersion": { + "description": "The fingerprint of the next version to be rotated to. If left unspecified, will be rotated to the most recently added server CA version.", + "type": "string" } }, "type": "object" @@ -1249,8 +3875,15 @@ "$ref": "SqlActiveDirectoryConfig", "description": "Active Directory configuration, relevant only for Cloud SQL for SQL Server." }, + "authorizedGaeApplications": { + "description": "The App Engine app IDs that can access this instance. (Deprecated) Applied to First Generation instances only.", + "items": { + "type": "string" + }, + "type": "array" + }, "availabilityType": { - "description": "Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](/sql/docs/postgres/high-availability).", + "description": "Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](https://cloud.google.com/sql/docs/mysql/high-availability).", "enum": [ "SQL_AVAILABILITY_TYPE_UNSPECIFIED", "ZONAL", @@ -1405,6 +4038,113 @@ }, "type": "object" }, + "SqlExternalSyncSettingError": { + "description": "External primary instance migration setting error.", + "id": "SqlExternalSyncSettingError", + "properties": { + "detail": { + "description": "Additional information about the error encountered.", + "type": "string" + }, + "kind": { + "description": "Can be *sql#externalSyncSettingError* or *sql#externalSyncSettingWarning*.", + "type": "string" + }, + "type": { + "description": "Identifies the specific error that occurred.", + "enum": [ + "SQL_EXTERNAL_SYNC_SETTING_ERROR_TYPE_UNSPECIFIED", + "CONNECTION_FAILURE", + "BINLOG_NOT_ENABLED", + "INCOMPATIBLE_DATABASE_VERSION", + "REPLICA_ALREADY_SETUP", + "INSUFFICIENT_PRIVILEGE", + "UNSUPPORTED_MIGRATION_TYPE", + "NO_PGLOGICAL_INSTALLED", + "PGLOGICAL_NODE_ALREADY_EXISTS", + "INVALID_WAL_LEVEL", + "INVALID_SHARED_PRELOAD_LIBRARY", + "INSUFFICIENT_MAX_REPLICATION_SLOTS", + "INSUFFICIENT_MAX_WAL_SENDERS", + "INSUFFICIENT_MAX_WORKER_PROCESSES", + "UNSUPPORTED_EXTENSIONS", + "INVALID_RDS_LOGICAL_REPLICATION", + "INVALID_LOGGING_SETUP", + "INVALID_DB_PARAM", + "UNSUPPORTED_GTID_MODE", + "SQLSERVER_AGENT_NOT_RUNNING", + "UNSUPPORTED_TABLE_DEFINITION", + "UNSUPPORTED_DEFINER", + "SQLSERVER_SERVERNAME_MISMATCH", + "PRIMARY_ALREADY_SETUP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "Unsupported migration type.", + "No pglogical extension installed on databases, applicable for postgres.", + "pglogical node already exists on databases, applicable for postgres.", + "The value of parameter wal_level is not set to logical.", + "The value of parameter shared_preload_libraries does not include pglogical.", + "The value of parameter max_replication_slots is not sufficient.", + "The value of parameter max_wal_senders is not sufficient.", + "The value of parameter max_worker_processes is not sufficient.", + "Extensions installed are either not supported or having unsupported versions", + "The value of parameter rds.logical_replication is not set to 1.", + "The primary instance logging setup doesn't allow EM sync.", + "The primary instance database parameter setup doesn't allow EM sync.", + "The gtid_mode is not supported, applicable for MySQL.", + "SQL Server Agent is not running.", + "The table definition is not support due to missing primary key or replica identity, applicable for postgres.", + "The customer has a definer that will break EM setup.", + "SQL Server @@SERVERNAME does not match actual host name", + "The primary instance has been setup and will fail the setup." + ], + "type": "string" + } + }, + "type": "object" + }, + "SqlInstancesRescheduleMaintenanceRequestBody": { + "description": "Reschedule options for maintenance windows.", + "id": "SqlInstancesRescheduleMaintenanceRequestBody", + "properties": { + "reschedule": { + "$ref": "Reschedule", + "description": "Required. The type of the reschedule the user wants." + } + }, + "type": "object" + }, + "SqlInstancesVerifyExternalSyncSettingsResponse": { + "description": "Instance verify external sync settings response.", + "id": "SqlInstancesVerifyExternalSyncSettingsResponse", + "properties": { + "errors": { + "description": "List of migration violations.", + "items": { + "$ref": "SqlExternalSyncSettingError" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#migrationSettingErrorList*.", + "type": "string" + }, + "warnings": { + "description": "List of migration warnings.", + "items": { + "$ref": "SqlExternalSyncSettingError" + }, + "type": "array" + } + }, + "type": "object" + }, "SqlOutOfDiskReport": { "description": "This message wraps up the information written by out-of-disk detection job.", "id": "SqlOutOfDiskReport", @@ -1455,6 +4195,40 @@ }, "type": "object" }, + "SqlServerDatabaseDetails": { + "description": "Represents a Sql Server database on the Cloud SQL instance.", + "id": "SqlServerDatabaseDetails", + "properties": { + "compatibilityLevel": { + "description": "The version of SQL Server with which the database is to be made compatible", + "format": "int32", + "type": "integer" + }, + "recoveryModel": { + "description": "The recovery model of a SQL Server database", + "type": "string" + } + }, + "type": "object" + }, + "SqlServerUserDetails": { + "description": "Represents a Sql Server user on the Cloud SQL instance.", + "id": "SqlServerUserDetails", + "properties": { + "disabled": { + "description": "If the user has been disabled", + "type": "boolean" + }, + "serverRoles": { + "description": "The server roles for this user", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SslCert": { "description": "SslCerts Resource", "id": "SslCert", @@ -1489,6 +4263,10 @@ "description": "This is always sql#sslCert.", "type": "string" }, + "selfLink": { + "description": "The URI of this resource.", + "type": "string" + }, "sha1Fingerprint": { "description": "Sha1 Fingerprint.", "type": "string" @@ -1496,6 +4274,21 @@ }, "type": "object" }, + "SslCertDetail": { + "description": "SslCertDetail.", + "id": "SslCertDetail", + "properties": { + "certInfo": { + "$ref": "SslCert", + "description": "The public information about the cert." + }, + "certPrivateKey": { + "description": "The private key for the client cert, in pem format. Keep private in order to protect your security.", + "type": "string" + } + }, + "type": "object" + }, "SslCertsCreateEphemeralRequest": { "description": "SslCerts create ephemeral certificate request.", "id": "SslCertsCreateEphemeralRequest", @@ -1510,6 +4303,197 @@ } }, "type": "object" + }, + "SslCertsInsertRequest": { + "description": "SslCerts insert request.", + "id": "SslCertsInsertRequest", + "properties": { + "commonName": { + "description": "User supplied name. Must be a distinct name from the other certificates for this instance.", + "type": "string" + } + }, + "type": "object" + }, + "SslCertsInsertResponse": { + "description": "SslCert insert response.", + "id": "SslCertsInsertResponse", + "properties": { + "clientCert": { + "$ref": "SslCertDetail", + "description": "The new client certificate and private key." + }, + "kind": { + "description": "This is always *sql#sslCertsInsert*.", + "type": "string" + }, + "operation": { + "$ref": "Operation", + "description": "The operation to track the ssl certs insert request." + }, + "serverCaCert": { + "$ref": "SslCert", + "description": "The server Certificate Authority's certificate. If this is missing you can force a new one to be generated by calling resetSslConfig method on instances resource." + } + }, + "type": "object" + }, + "SslCertsListResponse": { + "description": "SslCerts list response.", + "id": "SslCertsListResponse", + "properties": { + "items": { + "description": "List of client certificates for the instance.", + "items": { + "$ref": "SslCert" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#sslCertsList*.", + "type": "string" + } + }, + "type": "object" + }, + "Tier": { + "description": "A Google Cloud SQL service tier resource.", + "id": "Tier", + "properties": { + "DiskQuota": { + "description": "The maximum disk size of this tier in bytes.", + "format": "int64", + "type": "string" + }, + "RAM": { + "description": "The maximum RAM usage of this tier in bytes.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "This is always *sql#tier*.", + "type": "string" + }, + "region": { + "description": "The applicable regions for this tier.", + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "description": "An identifier for the machine type, for example, db-custom-1-3840. For related information, see Pricing.", + "type": "string" + } + }, + "type": "object" + }, + "TiersListResponse": { + "description": "Tiers list response.", + "id": "TiersListResponse", + "properties": { + "items": { + "description": "List of tiers.", + "items": { + "$ref": "Tier" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#tiersList*.", + "type": "string" + } + }, + "type": "object" + }, + "TruncateLogContext": { + "description": "Database Instance truncate log context.", + "id": "TruncateLogContext", + "properties": { + "kind": { + "description": "This is always *sql#truncateLogContext*.", + "type": "string" + }, + "logType": { + "description": "The type of log to truncate. Valid values are *MYSQL_GENERAL_TABLE* and *MYSQL_SLOW_TABLE*.", + "type": "string" + } + }, + "type": "object" + }, + "User": { + "description": "A Cloud SQL user resource.", + "id": "User", + "properties": { + "etag": { + "description": "This field is deprecated and will be removed from a future version of the API.", + "type": "string" + }, + "host": { + "description": "The host name from which the user can connect. For *insert* operations, host defaults to an empty string. For *update* operations, host is specified as part of the request URL. The host name cannot be updated after insertion.", + "type": "string" + }, + "instance": { + "description": "The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for *update* since it is already specified on the URL.", + "type": "string" + }, + "kind": { + "description": "This is always *sql#user*.", + "type": "string" + }, + "name": { + "description": "The name of the user in the Cloud SQL instance. Can be omitted for *update* since it is already specified in the URL.", + "type": "string" + }, + "password": { + "description": "The password for the user.", + "type": "string" + }, + "project": { + "description": "The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for *update* since it is already specified on the URL.", + "type": "string" + }, + "sqlserverUserDetails": { + "$ref": "SqlServerUserDetails" + }, + "type": { + "description": "The user type. It determines the method to authenticate the user during login. The default is the database's built-in user type.", + "enum": [ + "BUILT_IN", + "CLOUD_IAM_USER", + "CLOUD_IAM_SERVICE_ACCOUNT" + ], + "enumDescriptions": [ + "The database's built-in user type.", + "Cloud IAM user.", + "Cloud IAM service account." + ], + "type": "string" + } + }, + "type": "object" + }, + "UsersListResponse": { + "description": "User list response.", + "id": "UsersListResponse", + "properties": { + "items": { + "description": "List of user resources in the instance.", + "items": { + "$ref": "User" + }, + "type": "array" + }, + "kind": { + "description": "This is always *sql#usersList*.", + "type": "string" + }, + "nextPageToken": { + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json b/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json index 398f7259ded..b7b3c265951 100644 --- a/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json +++ b/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json @@ -122,7 +122,7 @@ ], "parameters": { "id": { - "description": "The ID of the Backup Run to delete. To find a Backup Run ID, use the list method.", + "description": "The ID of the backup run to delete. To find a backup run ID, use the list method.", "format": "int64", "location": "path", "required": true, @@ -162,7 +162,7 @@ ], "parameters": { "id": { - "description": "The ID of this Backup Run.", + "description": "The ID of this backup run.", "format": "int64", "location": "path", "required": true, @@ -191,7 +191,7 @@ ] }, "insert": { - "description": "Creates a new backup run on demand. This method is applicable only to Second Generation instances.", + "description": "Creates a new backup run on demand.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/backupRuns", "httpMethod": "POST", "id": "sql.backupRuns.insert", @@ -583,7 +583,7 @@ "flags": { "methods": { "list": { - "description": "List all available database flags for Cloud SQL instances.", + "description": "Lists all available database flags for Cloud SQL instances.", "flatPath": "sql/v1beta4/flags", "httpMethod": "GET", "id": "sql.flags.list", @@ -777,7 +777,7 @@ ] }, "failover": { - "description": "Failover the instance to its failover replica instance. Using this operation might cause your instance to restart.", + "description": "Initiates a manual failover of a high availability (HA) primary instance to a standby instance, which becomes the primary instance. Users are then rerouted to the new primary. For more information, see the Overview of high availability page in the Cloud SQL documentation. If using Legacy HA (MySQL only), this causes the instance to failover to its failover replica instance.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/failover", "httpMethod": "POST", "id": "sql.instances.failover", @@ -1911,7 +1911,7 @@ } } }, - "revision": "20210627", + "revision": "20210715", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -2073,11 +2073,11 @@ }, "diskEncryptionConfiguration": { "$ref": "DiskEncryptionConfiguration", - "description": "Encryption configuration specific to a backup. Applies only to Second Generation instances." + "description": "Encryption configuration specific to a backup." }, "diskEncryptionStatus": { "$ref": "DiskEncryptionStatus", - "description": "Encryption status specific to a backup. Applies only to Second Generation instances." + "description": "Encryption status specific to a backup." }, "endTime": { "description": "The time the backup operation completed in UTC timezone in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.", @@ -2371,7 +2371,7 @@ "id": "DatabaseFlags", "properties": { "name": { - "description": "The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation.", + "description": "The name of the flag. These flags are passed at instance startup, so include both server options and system variables. Flags are specified with underscores, not hyphens. For more information, see Configuring Database Flags in the Cloud SQL documentation.", "type": "string" }, "value": { @@ -2411,7 +2411,7 @@ "type": "string" }, "databaseVersion": { - "description": "The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.", + "description": "The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2019_STANDARD*, *SQLSERVER_2019_ENTERPRISE*, *SQLSERVER_2019_EXPRESS*, or *SQLSERVER_2019_WEB*, *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.", "enum": [ "SQL_DATABASE_VERSION_UNSPECIFIED", "MYSQL_5_1", @@ -2458,25 +2458,25 @@ }, "diskEncryptionConfiguration": { "$ref": "DiskEncryptionConfiguration", - "description": "Disk encryption configuration specific to an instance. Applies only to Second Generation instances." + "description": "Disk encryption configuration specific to an instance." }, "diskEncryptionStatus": { "$ref": "DiskEncryptionStatus", - "description": "Disk encryption status specific to an instance. Applies only to Second Generation instances." + "description": "Disk encryption status specific to an instance." }, "etag": { "description": "This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.", "type": "string" }, "failoverReplica": { - "description": "The name and status of the failover replica. This property is applicable only to Second Generation instances.", + "description": "The name and status of the failover replica.", "properties": { "available": { "description": "The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.", "type": "boolean" }, "name": { - "description": "The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID. This property is applicable only to Second Generation instances.", + "description": "The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn't include the project ID.", "type": "string" } }, @@ -2685,7 +2685,7 @@ "description": "Configuration specific to read-replicas replicating from the on-premises primary instance." }, "verifyGtidConsistency": { - "description": "Verify GTID consistency for demote operation. Default value: *True*. Second Generation instances only. Setting this flag to false enables you to bypass GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues.", + "description": "Verify GTID consistency for demote operation. Default value: *True*. Setting this flag to false enables you to bypass GTID consistency check between on-premises primary instance and Cloud SQL instance during the demotion operation but also exposes you to the risk of future replication failures. Change the value only if you know the reason for the GTID divergence and are confident that doing so will not cause any replication issues.", "type": "boolean" } }, @@ -2958,7 +2958,7 @@ "type": "string" }, "requiresRestart": { - "description": "Indicates whether changing this flag will trigger a database restart. Only applicable to Second Generation instances.", + "description": "Indicates whether changing this flag will trigger a database restart.", "type": "boolean" }, "type": { @@ -3125,7 +3125,7 @@ "type": "boolean" }, "queryPlansPerMinute": { - "description": "Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database.", + "description": "Number of query execution plans captured by Insights per minute for all queries combined. Default is 5.", "format": "int32", "type": "integer" }, @@ -3898,7 +3898,7 @@ }, "ipConfiguration": { "$ref": "IpConfiguration", - "description": "The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances." + "description": "The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled." }, "kind": { "description": "This is always *sql#settings*.", diff --git a/googleapiclient/discovery_cache/documents/storage.v1.json b/googleapiclient/discovery_cache/documents/storage.v1.json index 81a6e13f9af..a4f32b5207a 100644 --- a/googleapiclient/discovery_cache/documents/storage.v1.json +++ b/googleapiclient/discovery_cache/documents/storage.v1.json @@ -26,7 +26,7 @@ "description": "Stores and retrieves potentially large, immutable data objects.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/storage/docs/json_api/", - "etag": "\"313831343830353335313635363234373438\"", + "etag": "\"32333036333736303432373833323938323934\"", "icons": { "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" @@ -3230,7 +3230,7 @@ } } }, - "revision": "20210716", + "revision": "20210721", "rootUrl": "https://storage.googleapis.com/", "schemas": { "Bucket": { diff --git a/googleapiclient/discovery_cache/documents/storagetransfer.v1.json b/googleapiclient/discovery_cache/documents/storagetransfer.v1.json index 85d9fa18cb4..b164e9f8c9a 100644 --- a/googleapiclient/discovery_cache/documents/storagetransfer.v1.json +++ b/googleapiclient/discovery_cache/documents/storagetransfer.v1.json @@ -434,7 +434,7 @@ } } }, - "revision": "20210712", + "revision": "20210715", "rootUrl": "https://storagetransfer.googleapis.com/", "schemas": { "AwsAccessKey": { diff --git a/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json b/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json index 44a49b54daa..e2cc6b2ac7d 100644 --- a/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json +++ b/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json @@ -375,7 +375,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://streetviewpublish.googleapis.com/", "schemas": { "BatchDeletePhotosRequest": { diff --git a/googleapiclient/discovery_cache/documents/sts.v1.json b/googleapiclient/discovery_cache/documents/sts.v1.json index 0251a90fe0b..b7cce720d01 100644 --- a/googleapiclient/discovery_cache/documents/sts.v1.json +++ b/googleapiclient/discovery_cache/documents/sts.v1.json @@ -131,7 +131,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIdentityStsV1ExchangeTokenRequest": { diff --git a/googleapiclient/discovery_cache/documents/sts.v1beta.json b/googleapiclient/discovery_cache/documents/sts.v1beta.json index c3ac84dbaf0..31c70eb369a 100644 --- a/googleapiclient/discovery_cache/documents/sts.v1beta.json +++ b/googleapiclient/discovery_cache/documents/sts.v1beta.json @@ -116,7 +116,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIdentityStsV1betaExchangeTokenRequest": { diff --git a/googleapiclient/discovery_cache/documents/tagmanager.v1.json b/googleapiclient/discovery_cache/documents/tagmanager.v1.json index 73adfa2cb9a..6b59c5b5e6d 100644 --- a/googleapiclient/discovery_cache/documents/tagmanager.v1.json +++ b/googleapiclient/discovery_cache/documents/tagmanager.v1.json @@ -1932,7 +1932,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/tagmanager.v2.json b/googleapiclient/discovery_cache/documents/tagmanager.v2.json index 080fa714fc6..009efa7ac0f 100644 --- a/googleapiclient/discovery_cache/documents/tagmanager.v2.json +++ b/googleapiclient/discovery_cache/documents/tagmanager.v2.json @@ -1197,7 +1197,10 @@ "requestPath", "requestMethod", "clientName", - "queryString" + "queryString", + "serverPageLocationUrl", + "serverPageLocationPath", + "serverPageLocationHostname" ], "enumDescriptions": [ "", @@ -1309,6 +1312,9 @@ "", "", "", + "", + "", + "", "" ], "location": "query", @@ -1452,7 +1458,10 @@ "requestPath", "requestMethod", "clientName", - "queryString" + "queryString", + "serverPageLocationUrl", + "serverPageLocationPath", + "serverPageLocationHostname" ], "enumDescriptions": [ "", @@ -1564,6 +1573,9 @@ "", "", "", + "", + "", + "", "" ], "location": "query", @@ -1735,7 +1747,10 @@ "requestPath", "requestMethod", "clientName", - "queryString" + "queryString", + "serverPageLocationUrl", + "serverPageLocationPath", + "serverPageLocationHostname" ], "enumDescriptions": [ "", @@ -1847,6 +1862,9 @@ "", "", "", + "", + "", + "", "" ], "location": "query", @@ -3125,7 +3143,7 @@ } } }, - "revision": "20210714", + "revision": "20210721", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { @@ -3314,7 +3332,10 @@ "requestPath", "requestMethod", "clientName", - "queryString" + "queryString", + "serverPageLocationUrl", + "serverPageLocationPath", + "serverPageLocationHostname" ], "enumDescriptions": [ "", @@ -3426,6 +3447,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" diff --git a/googleapiclient/discovery_cache/documents/tasks.v1.json b/googleapiclient/discovery_cache/documents/tasks.v1.json index 4417030486b..686d4ccec27 100644 --- a/googleapiclient/discovery_cache/documents/tasks.v1.json +++ b/googleapiclient/discovery_cache/documents/tasks.v1.json @@ -566,7 +566,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://tasks.googleapis.com/", "schemas": { "Task": { diff --git a/googleapiclient/discovery_cache/documents/testing.v1.json b/googleapiclient/discovery_cache/documents/testing.v1.json index 5f35abf3c64..8562746bae5 100644 --- a/googleapiclient/discovery_cache/documents/testing.v1.json +++ b/googleapiclient/discovery_cache/documents/testing.v1.json @@ -282,7 +282,7 @@ } } }, - "revision": "20210713", + "revision": "20210719", "rootUrl": "https://testing.googleapis.com/", "schemas": { "Account": { diff --git a/googleapiclient/discovery_cache/documents/texttospeech.v1.json b/googleapiclient/discovery_cache/documents/texttospeech.v1.json index ed74e33d89d..ea7cde585fe 100644 --- a/googleapiclient/discovery_cache/documents/texttospeech.v1.json +++ b/googleapiclient/discovery_cache/documents/texttospeech.v1.json @@ -153,7 +153,7 @@ } } }, - "revision": "20210618", + "revision": "20210713", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { diff --git a/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json b/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json index b3c8e961155..e18ea1a3e0e 100644 --- a/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json +++ b/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json @@ -153,7 +153,7 @@ } } }, - "revision": "20210618", + "revision": "20210713", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { diff --git a/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json b/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json index 1d510b36d79..61a934d317f 100644 --- a/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json +++ b/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json @@ -1463,7 +1463,7 @@ } } }, - "revision": "20210719", + "revision": "20210726", "rootUrl": "https://toolresults.googleapis.com/", "schemas": { "ANR": { diff --git a/googleapiclient/discovery_cache/documents/tpu.v1.json b/googleapiclient/discovery_cache/documents/tpu.v1.json index dae38eb4828..50b9bf8f8e7 100644 --- a/googleapiclient/discovery_cache/documents/tpu.v1.json +++ b/googleapiclient/discovery_cache/documents/tpu.v1.json @@ -659,7 +659,7 @@ } } }, - "revision": "20210707", + "revision": "20210721", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -971,7 +971,7 @@ "enumDescriptions": [ "TPU node state is not known/set.", "TPU node is being created.", - "TPU node has been created and is fully usable.", + "TPU node has been created.", "TPU node is restarting.", "TPU node is undergoing reimaging.", "TPU node is being deleted.", diff --git a/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json b/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json index 6c98b079cac..eeb10d6634c 100644 --- a/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json +++ b/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json @@ -669,7 +669,7 @@ } } }, - "revision": "20210707", + "revision": "20210721", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -981,7 +981,7 @@ "enumDescriptions": [ "TPU node state is not known/set.", "TPU node is being created.", - "TPU node has been created and is fully usable.", + "TPU node has been created.", "TPU node is restarting.", "TPU node is undergoing reimaging.", "TPU node is being deleted.", diff --git a/googleapiclient/discovery_cache/documents/trafficdirector.v2.json b/googleapiclient/discovery_cache/documents/trafficdirector.v2.json index 3be49805738..26ac6b5be5d 100644 --- a/googleapiclient/discovery_cache/documents/trafficdirector.v2.json +++ b/googleapiclient/discovery_cache/documents/trafficdirector.v2.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210709", + "revision": "20210722", "rootUrl": "https://trafficdirector.googleapis.com/", "schemas": { "Address": { diff --git a/googleapiclient/discovery_cache/documents/vectortile.v1.json b/googleapiclient/discovery_cache/documents/vectortile.v1.json index a67738c05ec..e0b0089ec9e 100644 --- a/googleapiclient/discovery_cache/documents/vectortile.v1.json +++ b/googleapiclient/discovery_cache/documents/vectortile.v1.json @@ -343,7 +343,7 @@ } } }, - "revision": "20210717", + "revision": "20210723", "rootUrl": "https://vectortile.googleapis.com/", "schemas": { "Area": { diff --git a/googleapiclient/discovery_cache/documents/videointelligence.v1.json b/googleapiclient/discovery_cache/documents/videointelligence.v1.json index dc6846f023a..f001665c25e 100644 --- a/googleapiclient/discovery_cache/documents/videointelligence.v1.json +++ b/googleapiclient/discovery_cache/documents/videointelligence.v1.json @@ -350,7 +350,7 @@ } } }, - "revision": "20210602", + "revision": "20210715", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/googleapiclient/discovery_cache/documents/videointelligence.v1beta2.json b/googleapiclient/discovery_cache/documents/videointelligence.v1beta2.json index 27621c51929..bf409d20c1c 100644 --- a/googleapiclient/discovery_cache/documents/videointelligence.v1beta2.json +++ b/googleapiclient/discovery_cache/documents/videointelligence.v1beta2.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210602", + "revision": "20210715", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/googleapiclient/discovery_cache/documents/videointelligence.v1p1beta1.json b/googleapiclient/discovery_cache/documents/videointelligence.v1p1beta1.json index 4789491b1b0..0094e3bf156 100644 --- a/googleapiclient/discovery_cache/documents/videointelligence.v1p1beta1.json +++ b/googleapiclient/discovery_cache/documents/videointelligence.v1p1beta1.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210602", + "revision": "20210715", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/googleapiclient/discovery_cache/documents/videointelligence.v1p2beta1.json b/googleapiclient/discovery_cache/documents/videointelligence.v1p2beta1.json index 8da59f0a55e..fae868bcea1 100644 --- a/googleapiclient/discovery_cache/documents/videointelligence.v1p2beta1.json +++ b/googleapiclient/discovery_cache/documents/videointelligence.v1p2beta1.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210602", + "revision": "20210715", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/googleapiclient/discovery_cache/documents/videointelligence.v1p3beta1.json b/googleapiclient/discovery_cache/documents/videointelligence.v1p3beta1.json index 8e19c8c45a5..d79e0467b92 100644 --- a/googleapiclient/discovery_cache/documents/videointelligence.v1p3beta1.json +++ b/googleapiclient/discovery_cache/documents/videointelligence.v1p3beta1.json @@ -128,7 +128,7 @@ } } }, - "revision": "20210602", + "revision": "20210715", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/googleapiclient/discovery_cache/documents/vision.v1.json b/googleapiclient/discovery_cache/documents/vision.v1.json index 0656f316d0f..b5cf6148cd3 100644 --- a/googleapiclient/discovery_cache/documents/vision.v1.json +++ b/googleapiclient/discovery_cache/documents/vision.v1.json @@ -1282,7 +1282,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AddProductToProductSetRequest": { diff --git a/googleapiclient/discovery_cache/documents/vision.v1p1beta1.json b/googleapiclient/discovery_cache/documents/vision.v1p1beta1.json index ae1f4c03b40..017c8cb3ca8 100644 --- a/googleapiclient/discovery_cache/documents/vision.v1p1beta1.json +++ b/googleapiclient/discovery_cache/documents/vision.v1p1beta1.json @@ -449,7 +449,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { diff --git a/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json b/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json index 9c0aef079fc..f1588daaf05 100644 --- a/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json +++ b/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json @@ -449,7 +449,7 @@ } } }, - "revision": "20210709", + "revision": "20210716", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { diff --git a/googleapiclient/discovery_cache/documents/webrisk.v1.json b/googleapiclient/discovery_cache/documents/webrisk.v1.json index 0447b90ed27..a998db4b074 100644 --- a/googleapiclient/discovery_cache/documents/webrisk.v1.json +++ b/googleapiclient/discovery_cache/documents/webrisk.v1.json @@ -446,7 +446,7 @@ } } }, - "revision": "20210709", + "revision": "20210723", "rootUrl": "https://webrisk.googleapis.com/", "schemas": { "GoogleCloudWebriskV1ComputeThreatListDiffResponse": { diff --git a/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json b/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json index 34013de3120..66078b7e4f5 100644 --- a/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json +++ b/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json @@ -269,7 +269,7 @@ } } }, - "revision": "20210706", + "revision": "20210713", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "CancelExecutionRequest": { diff --git a/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json b/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json index 61dc5ad7997..b1c0f596561 100644 --- a/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json +++ b/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json @@ -269,7 +269,7 @@ } } }, - "revision": "20210706", + "revision": "20210713", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "CancelExecutionRequest": { diff --git a/googleapiclient/discovery_cache/documents/workflows.v1beta.json b/googleapiclient/discovery_cache/documents/workflows.v1beta.json index 2bc675c163f..aaf8597222c 100644 --- a/googleapiclient/discovery_cache/documents/workflows.v1beta.json +++ b/googleapiclient/discovery_cache/documents/workflows.v1beta.json @@ -444,7 +444,7 @@ } } }, - "revision": "20210707", + "revision": "20210714", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "Empty": { diff --git a/googleapiclient/discovery_cache/documents/youtube.v3.json b/googleapiclient/discovery_cache/documents/youtube.v3.json index 34b6b94fd7a..f4757b14657 100644 --- a/googleapiclient/discovery_cache/documents/youtube.v3.json +++ b/googleapiclient/discovery_cache/documents/youtube.v3.json @@ -3765,7 +3765,7 @@ } } }, - "revision": "20210717", + "revision": "20210724", "rootUrl": "https://youtube.googleapis.com/", "schemas": { "AbuseReport": { diff --git a/googleapiclient/discovery_cache/documents/youtubeAnalytics.v2.json b/googleapiclient/discovery_cache/documents/youtubeAnalytics.v2.json index f74c8da34c2..8ddd2c78863 100644 --- a/googleapiclient/discovery_cache/documents/youtubeAnalytics.v2.json +++ b/googleapiclient/discovery_cache/documents/youtubeAnalytics.v2.json @@ -421,7 +421,7 @@ } } }, - "revision": "20210717", + "revision": "20210719", "rootUrl": "https://youtubeanalytics.googleapis.com/", "schemas": { "EmptyResponse": { diff --git a/googleapiclient/discovery_cache/documents/youtubereporting.v1.json b/googleapiclient/discovery_cache/documents/youtubereporting.v1.json index 01c3e7bd103..e0e3c6e4d9b 100644 --- a/googleapiclient/discovery_cache/documents/youtubereporting.v1.json +++ b/googleapiclient/discovery_cache/documents/youtubereporting.v1.json @@ -411,7 +411,7 @@ } } }, - "revision": "20210717", + "revision": "20210720", "rootUrl": "https://youtubereporting.googleapis.com/", "schemas": { "Empty": {